抓取具有AJAX/动态数据加载功能的网页的最佳方式是什么?
例如:抓取一个网页,该网页加载了20张图片,但当用户向下滚动页面时,它会加载更多的图片(有点像Facebook)。在这种情况下,如何抓取所有图像,而不仅仅是前20个图像?
发布于 2012-12-06 15:29:48
发布于 2012-12-06 15:51:36
这是连主流搜索引擎都还没有掌握的东西。它被称为"event-driven crawling“。
谷歌甚至有一个关于如何处理help them crawl your ajax sites better的指南
最好的办法是阅读一些open source crawlers,看看他们做了什么。但是,除非你有一个明确的目标,否则你爬行80%的机会充其量也是微乎其微的。
在crawljax上也有一些有趣的读物
基本上,您应该尝试查找脚本并检查它们是否进行任何ajax调用,然后确定它们采用哪种类型的参数,并使用递增/递减的参数值进行重复调用。这只在参数具有逻辑模式时才起作用,例如数字、单个字母等。它还取决于您是针对已知的站点还是只是将其发送到野外。如果你知道你的目标,你可以检查它的DOM并定制你的代码以提高准确性,就像wolf提到的那样。
祝好运
发布于 2012-12-17 21:20:25
Crawljax是开源的,可以动态抓取基于Ajax的内容。
https://stackoverflow.com/questions/13746882
复制