Мне дали URL, мне нужно получить этот URL HTML и оттуда получить ссылки на этот сайт.
Я думал об использовании безголовых браузеров. Я использую Java, поэтому я хотел бы подвести итог, используя процесс Java.
примером может быть cnn site ...
До сих пор я пытался использовать:
testCompile 'net.sourceforge.htmlunit: htmlunit: 2.32'
@Test
public void htmlUnitTest() throws Exception {
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
webClient.waitForBackgroundJavaScriptStartingBefore(20000);
webClient.getOptions().setThrowExceptionOnScriptError(false);
final HtmlPage page = webClient.getPage(URL);
WebResponse response = page.getWebResponse();
String content = response.getContentAsString();
List<HtmlAnchor> anchors = page.getAnchors();
System.out.println("anchors.size() : " + anchors.size());
System.out.println("***********");
System.out.println(content);
System.out.println("***********");
try (BufferedWriter writer = new BufferedWriter(new FileWriter("htmlUnit.txt"))) {
writer.write(content);
}
}
}
но в ответ я получаю исходный HTML без рендеринга (java-скрипт не работал и не создал якоря страницы в моем случае)
Может кто-нибудь порекомендовать другую библиотеку или сказать мне, если я скучаю по использованию модуля html и могу предложить рабочее решение, это будет очень полезно.