javascript - 网络爬虫如何处理javascript

标签 javascript web-crawler

如今,Internet 上的许多内容都是使用 JavaScript 生成的(特别是通过后台 AJAX 调用)。我想知道像谷歌这样的网络爬虫是如何处理它们的。他们了解 JavaScript 吗?他们有内置的 JavaScript 引擎吗?或者他们是否简单地忽略页面中所有 JavaScript 生成的内容(我猜不太可能)。人们是否使用特定技术对其内容进行索引,而普通 Internet 用户可以通过后台 AJAX 请求获得这些内容?

最佳答案

JavaScript 由 Bing 和 Google 抓取工具处理。雅虎使用 Bing 爬虫数据,因此也应该进行处理。我没有研究过其他搜索引擎,所以如果你关心它们,你应该查找它们。

Bing published guidance in March 2014关于如何创建与其爬虫一起工作的基于 JavaScript 的网站(主要与 pushState 相关),这通常是良好的做法:

Google later published guidance in May 2014至于如何创建与他们的爬虫配合使用的基于 JavaScript 的网站,也推荐他们的建议:

  • 不要阻止 robots.txt 文件中的 JavaScript(和 CSS)。
  • 确保您能够承受抓取工具的负载。
  • 最好支持无法处理(或不允许)JavaScript 的浏览器和抓取工具
  • 依赖于语言的神秘或特定功能的棘手 JavaScript 可能无法与抓取工具一起工作。
  • 如果您的 JavaScript 从页面中删除内容,则该内容可能不会被编入索引。 周围。

关于javascript - 网络爬虫如何处理javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1785083/

相关文章:

automated-tests - 用于系统测试的自动链接检查器

regex - 使用 xpath 或 regexp 设置 import.io 爬虫

javascript - 如何阻止机器人抓取我基于 AJAX 的 URL?

python - 网站 map 爬虫中永无休止的 for 循环

php - 关于 CodeIgniter 与 Javascript 和 AJAX 的一些问题

javascript - Rails 表单选择验证

javascript - jQuery 无法与 cakephp 2.0 一起使用

javascript - 如何抑制错误 : Illegal space before opening round brace at from jsrc?

php - 使用 Javascript 的 PHP 中的第一个下拉框不会保留我的选择

node.js\为什么我会收到 RangeError : Maximum call stack size exceeded