【问题标题】:Java-Scrape a dynamic website with JSoupJava-使用 JSoup 抓取动态网站
【发布时间】:2025-12-26 13:10:06
【问题描述】:

我想用 JSoup 抓取一个网站。这个网站是动态的,大约每秒更新一次。我很确定它使用 JQuery,它会更新 HTML 中的一些标签。我正在使用 JSoup,但动态区域是空白的。 JSoup 有什么特别的东西可以解决这个问题吗?或者这是一个限制? 编辑:我打算把它放在我网站上的 Java 小程序中。

【问题讨论】:

    标签: java applet jsoup


    【解决方案1】:

    听起来您希望 JSoup 的行为类似于支持 JavaScript 的浏览器。 恐怕这行不通。 JSoup 是一个工具,它可以执行一个 HTTP 请求,然后使用响应体做一些有用的事情。

    这个“有用的东西”是从响应中的 (X)HTML 文本中提取信息。 如果您想在加载注入 JavaScript 的 HTML 页面(=动态网页)之后获取后续 ajax-request 的内容,您需要自己建模这些后续请求并指示 JSoup 为您手动执行这些请求。

    【讨论】:

      【解决方案2】:
      1. Selenium WebDriver 在真实浏览器中打开页面
      2. 使用 Selenium WebDriver API 寻址元素并获取其内容 - 您甚至可以在页面上下文中调用 JS 代码
      3. 使用 JSoup 等解析

      【讨论】:

      • 如果我使用 Selenium WebDriver,我将如何将我的小程序放在我的网站上(如果可能)?我有一台 Linux 服务器。
      • 小程序?我在谈论 javascript - 这是一个例子:rostislav-matl.blogspot.cz/2011/06/…
      【解决方案3】:

      HTMLUnit 是一个基于 java 的无窗口浏览器,支持 javascript 我用过一些报废项目,效果很好,有时在大型操作中有点慢。它还支持代理。 http://htmlunit.sourceforge.net/

      【讨论】: