谷歌如何索引通过 XHR 或 WebSocket 动态加载消息的网络聊天?

问题描述

为什么我可以在(例如)gitter.im 中搜索消息?谷歌是如何将这一切编入索引的:https://gitter.im/neoclide/coc.nvim?at=5ea00cdda3612210839689f1

gitter.im 是否以另一种格式或通过某些特定接口/协议在某处为网络爬虫声明的特定部分将其内容返回给谷歌?谷歌是否在开发上花费了一些资源来构建一个能够执行特定 XHR 请求的特定于 gitter.im 的爬虫?

解决方法

简单:

  1. 谷歌询问https://gitter.im/gitter/developers
  2. HTML 中已经嵌入了 N 个最近的消息,比如说 50。然后谷歌只是从 HTML 中提取所有链接(例如,从那个时间标签“18:15”)。每个时间标签都为您提供 https://gitter.im/gitter/developers?at=610011abc9f8852a970e808e 形式的网址,而 google 并不关心为什么。只需记住网址即可。
  3. Google 要求抓取表单 https://gitter.im/gitter/developers?at=610011abc9f8852a970e808e
  4. 的 50 个网址
  5. 每个这样的 URL 都会为您提供大约 50 条关于该确切消息的消息。所以搜索引擎认为:“好吧,这个 URL 给了你这个文本”。
  6. 因此,当您搜索此测试时,它只会为您提供更接近该文本的网址,或者可能只是包含该文本的任何网址...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...