今天互联网上的很多内容都是使用JavaScript(特别是后台AJAX调用)生成的。我想知道像谷歌这样的网络爬虫如何处理它们。他们知道JavaScript吗?他们有内置的JavaScript引擎吗?或者他们简单地忽略页面中所有JavaScript生成的内容(我想这不太可能)。人们是否使用特定的技术来获取其索引的内容,否则这些技术将通过后台AJAX请求提供给普通的Internet用户?网络爬虫如何处理javascript
回答
JavaScript由Bing和Google抓取工具处理。雅虎使用Bing搜索器数据,因此它也应该被处理。我没有看到其他搜索引擎,所以如果你关心他们,你应该看看他们。
Bing published guidance in March 2014为如何创建基于JavaScript的网站,与他们的爬虫(大多与pushState
)是很好的做法,一般的工作:
- 避免造成损坏的链接与
pushState
- 避免创建两个链接到相同内容的不同链接
pushState
- 避免cloaking。 (Here's an article Bing published about their cloaking detection in 2007)
- 支持无法处理
pushState
的浏览器(和搜寻器)。
Google later published guidance in May 2014为如何创建基于JavaScript的网站,与他们的履带式作业,他们的建议也建议:
- 不要在robots.txt阻止的JavaScript(和CSS)文件。
- 确保您可以处理抓取工具的负载。
- 支持无法处理的浏览器和爬虫(或不允许的用户和组织)JavaScript是一个好主意JavaScript
- 依赖于语言的神秘或特定功能的棘手JavaScript可能无法与爬虫一起使用。
- 如果JavaScript从页面中删除内容,则可能无法获得索引。周围有 。
未来看起来网络抓取工具将变得更加智能化,并更专注于AJAX? – 2009-11-23 18:46:56
@Shailesh - 我会说一个确定的。他们谈论了在这里爬行Javascript或AJAX网站的挑战:http://searchengineland.com/google-io-new-advances-in-the-searchability-of-javascript-and-flash-but- is-it-enough-19881 – 2009-11-23 18:56:57
这个答案非常过时。 Googlebot现在肯定可以处理JavaScript:http://googlewebmastercentral.blogspot.com/2014/05/understanding-web-pages-better.html不确定其他抓取工具,但我的猜测是,他们很可能会很快跟上,如果他们还没有。 – Ajedi32 2015-09-11 16:42:36
大多数人不以任何方式处理Javascript。 (至少,所有主要搜索引擎的抓取工具都没有。)
这就是为什么让您的网站优雅地处理没有Javascript的导航仍然很重要。
不幸的是,谷歌机器人绝对爬行在JavaScript内部... [链接](http:// stackoverflow .com/questions/5749348/jquery-causes-404-errors-in-webmaster-tools-on-a-directory) – Sparky 2011-04-26 01:22:24
他们只是不处理javascript,或者他们是否使用
正是本S说的。任何使用Lynx访问您的网站的人都不会执行JavaScript。如果您的网站旨在供公众使用,则通常应该在没有JavaScript的情况下使用。
另外,相关:如果您希望搜索引擎找到哪些页面,哪些通常只会出现在JavaScript中,则可以考虑生成它们的静态版本,通过可搜索的站点地图访问,其中这些静态页面使用JavaScript加载当前版本,当被支持JavaScript的浏览器点击时(如果浏览器的人跟随您的站点地图)。搜索引擎会看到页面的静态形式,并可以对其进行索引。
爬行程序不解析Javascript以查明它做了什么。
它们可能会构建为识别onchange="window.location.href=this.options[this.selectedIndex].value;"
或onclick="window.location.href='blah.html';"
等一些经典片段,但它们不会打扰使用AJAX获取的内容等内容。至少现在还没有,而且这样的内容总是次要的。
所以,Javascript应该只用于附加功能。您希望抓取工具找到的主要内容仍然应该是页面中的纯文本和抓取工具可以轻松遵循的常规链接。
我已经测试了这一点,通过在我的网站上只能通过Javascript访问页面,然后观察它们在搜索索引中的存在。
我的网站上只有Javascript才能访问的页面随后被Google编入索引。
通过使用'经典'技术的Javascript或构建URL并相应地设置window.location,可以达到内容。
爬虫可以处理JavaScript或AJAX如果他们使用了一些有点像“的HtmlUnit”或“硒”框架的要求
你知道有谁这样做吗? – 2012-10-26 08:40:48
不想命名任何特定的抓取工具,但它是可能的。 – Srikanth 2012-10-26 16:05:46
- 1. 我如何处理JavaScript的一个Perl的网络爬虫?
- 2. 网络爬虫
- 3. PHP网络爬虫
- 4. java网络爬虫
- 5. Python网络爬虫
- 6. 如何在Django中处理网络爬虫?
- 7. 需要网络爬虫
- 8. 自动网络爬虫
- 9. 网络爬虫,反馈?
- 10. 网络爬虫不打印
- 11. 网络爬虫应用
- 12. 网络爬虫提取
- 13. 如何使网络爬虫更有效?
- 14. NodeJs网络爬虫文件扩展处理
- 15. 针对网络爬虫的Python线程或多处理?
- 16. 是一个网络爬虫更合适?
- 17. 在Scala中的网络爬虫算法
- 18. 网络爬虫使用双绞线
- 19. 识别敌对网络爬虫
- 20. 与Python 2.7.9分页网络爬虫
- 21. 网络爬虫遇到什么危险?
- 22. 错误使用C#网络爬虫
- 23. PHP与Python对于网络爬虫
- 24. 制作网络爬虫/蜘蛛
- 25. 在android上的简单网络爬虫?
- 26. 网络爬虫和GET与POST请求
- 27. 网络爬虫产生输出缓存
- 28. 网络爬虫更新策略
- 29. 简单的Python网络爬虫
- 30. Scrapy网络爬虫获取错误
http://stackoverflow.com/questions/1739898/html-how-to-get-我的子页面上谷歌搜索 请参阅这里的“获取内容索引”的答案 – 2009-11-23 18:42:03