如何使用 HtmlUnit 将包含 javascript 的页面提取为 HTML?我找到了如下示例代码,但不起作用。
public class Downloader {
public static void main(String[] args) throws Exception {
LogFactory.getFactory().setAttribute("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(Level.OFF);
java.util.logging.Logger.getLogger("org.apache.commons.httpclient").setLevel(Level.OFF);
try (final WebClient webClient = new WebClient()) {
final HtmlPage page = webClient.getPage("https://www.oddsportal.com/matches/soccer/");
System.out.println(page.asText());
}
System.out.println("END");
}
}
使用这段代码,我陷入了无限循环。我不知道为什么。如果我在 Firefox 检查器中打开上述站点,我可以在执行 javascript 后看到完整的 HTML 代码。我如何使用 HtmlUnit 达到相同的结果。有可能的?也许我应该使用其他库?有什么建议吗?
最佳答案
HtmlUnit 在解释 javascript 时往往会遇到很多问题。如果您只是寻找游戏数据,否则您可能会更成功: https://github.com/gingeleski/odds-portal-scraper
无论如何,我设法让代码与更改浏览器版本一起工作:
最终 WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)
关于java - HtmlUnit - 抓取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58031401/