如何通过动态内容加载来抓取网站?

问题描述:

我该如何使用动态内容加载网站,比如forbes.com文章,但是在apache http客户端中没有使用网络驱动程序(速度很慢)。如何通过动态内容加载来抓取网站?

我已经尝试了获取sitemap.xml,但他们的站点地图只包含最新的文章,我想从非常古老的文章中获取信息。

此外,我想要一个更通用的解决方案,并与网络驱动程序(我现在用phantomJS使用硒)是特定于站点和缓慢。

+4

在桌面浏览器中加载所需的页面,查看开发人员工具的网络选项卡,查看从中加载的实际内容的位置。很多时候,这样的动态JavaScript网站会从某个URL加载其内容,例如以Json格式。然后,您需要做的就是弄清楚如何从自己的代码中加载来自相同URL的数据。 – JonasCz

+0

[headless internet browser?]可能的重复(http://*.com/questions/814757/headless-internet-browser) – Stephan

+0

@Stephan我不认为它是重复的,因为我明确提到我正在寻找与使用带有无头浏览器的网络驱动程序不同的解决方案。 –

我建议你试试这个工具ui4j。它是使用无头模式的JavaFx WebKit引擎的封装。它可以帮助你加快速度。

+0

ui4j有一个主要缺点:它使用JavaFX集成的webkit引擎,并且此引擎与某些网页不兼容,尤其是涉及JavaScript和CSS时。 – Robert