有没有人知道爬行使用无限滚动的页面的方法?

时间:2015-03-13 11:43:17

标签: perl web-crawler infinite-scroll

有没有人知道抓取使用无限滚动的页面的方法?我想用Perl做,但我找不到任何好的用户代理来做... 非常感谢!

4 个答案:

答案 0 :(得分:2)

如果页面使用无限滚动,则表示它使用客户端脚本(JavaScript)来实现分页。如果您使用Perl进行爬网,则很可能会发出服务器请求。但是返回的HTML是静态的,在Perl脚本中没有运行JavaScript引擎来执行实现无限滚动功能的客户端脚本。

现在有两种选择:

  1. 调试已爬网页面,了解它们如何实现无限滚动。它几乎肯定会对服务器进行AJAX调用,也许它们也允许你发出请求。但是,此解决方案意味着您的代码是针对单个页面修复的,因为每个网站可能以不同方式实现无限滚动。
  2. 包含服务器端JavaScript引擎(例如Chrome引擎Node.js使用)并在该引擎中运行获取的HTML。然后,您应该能够通过一些聪明的JavaScript代码模拟无限滚动。

答案 1 :(得分:1)

As"无限滚动"这是必须通过用户端Java脚本和类似AJAX的请求技术来实现的,你可能必须使用真正的"真实的"浏览器(如firefox)实际模拟用户向下滚动,如果你不想花时间了解javascript如何确定接下来要求的内容。不漂亮。

在较轻松的说明中,如果禁用javascript,许多网站仍会为您提供良好的旧分页视图,因此您很可能不需要这样做。只需下载页面,查看源代码,抓取就像抓取任何旧式博客(或其他任何内容)一样。

答案 2 :(得分:1)

使用Selenium::Remote::Driver通过您选择的浏览器访问该网站。

如何轻松地开展工作取决于网站。

答案 3 :(得分:0)

如果您使用的是Windows could drive Internet Explorer using Win32::OLE,请使用DWebBrowserEvents2界面。