HtmlUnit - 抓取数据
HtmlUnit - scraping data
我如何使用 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
无论如何,我设法让代码与更改浏览器版本一起工作:
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)
我如何使用 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
无论如何,我设法让代码与更改浏览器版本一起工作:
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)