首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML页面抓取

HTML页面抓取
EN

Stack Overflow用户
提问于 2012-12-06 15:26:14
回答 3查看 816关注 0票数 3

抓取具有AJAX/动态数据加载功能的网页的最佳方式是什么?

例如:抓取一个网页,该网页加载了20张图片,但当用户向下滚动页面时,它会加载更多的图片(有点像Facebook)。在这种情况下,如何抓取所有图像,而不仅仅是前20个图像?

EN

回答 3

Stack Overflow用户

发布于 2012-12-06 15:29:48

使用FiddlerWireShark等工具检查加载更多项目时执行的web请求。

然后在您的代码中复制请求。

更新(感谢 或他的评论):

请注意,Wireshark是一个低级网络捕获工具,它提供了有关通信量(正在交换的数据包、DNS查找等)的大量细节,在这样的场景中使用可能很麻烦,因为您只希望看到HTTP请求。

因此,你最好在浏览器中使用Fiddler或类似的工具(例如:Chrome的网络检查面板)。

票数 2
EN

Stack Overflow用户

发布于 2012-12-06 15:51:36

这是连主流搜索引擎都还没有掌握的东西。它被称为"event-driven crawling“。

谷歌甚至有一个关于如何处理help them crawl your ajax sites better的指南

最好的办法是阅读一些open source crawlers,看看他们做了什么。但是,除非你有一个明确的目标,否则你爬行80%的机会充其量也是微乎其微的。

crawljax上也有一些有趣的读物

基本上,您应该尝试查找脚本并检查它们是否进行任何ajax调用,然后确定它们采用哪种类型的参数,并使用递增/递减的参数值进行重复调用。这只在参数具有逻辑模式时才起作用,例如数字、单个字母等。它还取决于您是针对已知的站点还是只是将其发送到野外。如果你知道你的目标,你可以检查它的DOM并定制你的代码以提高准确性,就像wolf提到的那样。

祝好运

票数 2
EN

Stack Overflow用户

发布于 2012-12-17 21:20:25

Crawljax是开源的,可以动态抓取基于Ajax的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13746882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档