【问题标题】:How to scrape a website with dynamic content loading?如何通过动态内容加载抓取网站?
【发布时间】:2016-01-06 14:29:04
【问题描述】:

我如何通过动态内容加载来抓取网站,例如 forbes.com 文章,但不使用 apache http 客户端中的 web-driver(速度很慢)。

我已尝试获取 sitemap.xml,但他们的站点地图仅包含最新文章,我想要来自非常旧文章的信息。

另外,我想要一个更通用的解决方案,并且使用 web 驱动程序(我现在使用 selenium 和 phantomJS)是特定于站点的并且速度很慢。

【问题讨论】:

  • 在桌面浏览器中加载您想要的页面,查看开发人员工具的网络选项卡以查看实际加载内容的位置。此类动态 JavaScript 站点经常从某个 URL 加载其内容,例如 Json 格式。然后你需要做的就是弄清楚如何在你自己的代码中从同一个 URL 加载数据。
  • @Stephan 我不认为这是重复的,因为我清楚地提到我正在寻找一种与使用带有无头(或无头)浏览器的网络驱动程序不同的解决方案。

标签: java dynamic web-scraping jsoup webclient


【解决方案1】:

我建议你试试这个工具ui4j。它是带有无头模式的 JavaFx WebKit 引擎的包装器。它可以帮助您加快速度。

【讨论】:

  • ui4j 有一个主要缺点:它使用 JavaFX 集成的 webkit 引擎,该引擎与某些网页不兼容,尤其是涉及 JavaScript 和 CSS 时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-09
  • 2017-11-12
  • 1970-01-01
  • 2017-04-13
  • 2021-04-17
  • 2016-08-15
相关资源
最近更新 更多