【问题标题】:Website Scraping in Java once the whole site is loaded加载整个网站后,用 Java 抓取网站
【发布时间】:2026-01-09 11:40:01
【问题描述】:

在少数网站中,很少有脚本可能需要一些时间来运行,这会导致网站抓取效率低下或从 scraper 返回的 html 不完整。如何网站脚本完全运行后抓取网站。

当我从中读取文本时,我在 java 中使用 URL 连接我得到了预先成熟的 HTML(即)我有一个有点长的脚本,它需要一些时间来加载它改变了文本的颜色没有反映在使用 URL CONNECTION 读取的文本中。

【问题讨论】:

  • 如果我不知道您真正尝试执行什么,我该如何帮助您? *.com/help/mcve
  • 只有在完全加载后才运行的脚本很少
  • 检查并等待页面完成加载。
  • 我记得为此使用了Jsoup

标签: java


【解决方案1】:

您可以使用PhantomJS。它是一个浏览器,但无头。它将渲染页面上的所有js。你可能会发现这个帖子很有用Any Java equivalent to PhantomJS?

【讨论】:

    【解决方案2】:

    我在 Java 中使用 Selenium(以及使用 Java 库的 kotlin)来进行网站自动化和测试 它可以设置为在查找元素之前等待指定的时间或等到它被加载,因为它实际上只是远程控制网络浏览器,您可以在页面上使用 javascript 并像任何用户一样行事

    https://www.seleniumhq.org/download/

    https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java

    RemoteWebDriver driver = new ChromeDriver()
    driver.get(url)
    driver.findElement(by.name("search")).sendKeys("some query")
    driver.find(by.id("submit")).click()
    

    您可以按照此处所述等待所有内容加载 https://*.com/a/33349203/9006779 (或者至少以类似的方式,api可能已经改变)

    【讨论】: