Java 使用htmlunit获取HTML页面
我正在尝试获取网站(ex)的HTML页面,但出现了IlleagalArgumentException错误:找不到声明的字段类org.apache.http.impl.client.HttpClientBuilder.dnsResolver。我的代码如下:Java 使用htmlunit获取HTML页面,java,htmlunit,Java,Htmlunit,我正在尝试获取网站(ex)的HTML页面,但出现了IlleagalArgumentException错误:找不到声明的字段类org.apache.http.impl.client.HttpClientBuilder.dnsResolver。我的代码如下: public class Main1 { public static void main(String[] args) { try { homePage();
public class Main1 {
public static void main(String[] args) {
try {
homePage();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void homePage() throws Exception {
try (final WebClient webClient = new WebClient()) {
final HtmlPage page = webClient.getPage("http://www.google.com");
String text = page.asText();
System.out.println(text);
}
}
}
代码有问题吗?谢谢您可以使用
小代码示例
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
高级用法
File input = new File("/tmp/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/");
Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
}
有用的URL
HtmlPage
或HtmlElement
上使用asXml()
将其作为HTML/XML表示
page.asXml()
按照您编写代码的方式,它将返回一个文本表示形式,该文本表示形式将显示在已使用的浏览器上
您可能需要添加以下内容以启用JavaScript:
webClient.options.setJavaScriptEnabled(true)
IlleagalArgumentException:找不到声明的字段类org.apache.http.impl.client.HttpClientBuilder.dnsResolver
这看起来像是HttpClient依赖项的错误版本。请检查您的类路径,使每个依赖项只有一个(并且只有正确的)版本
对于当前版本,您可以在此处找到依赖项列表为什么需要获取页面?你想解析它吗?@Tugrul是的,我需要解析它。事实上,我读到htmlunit可以解析页面的html和javascript元素。检查我的建议。看起来不错,最好打印stacktrance以便我们跟踪发生了什么。可能您没有设置浏览器版本,没有设置webClient选项,因此存在错误。Jsoup无法解析Javascript元素,对吗?实际上,我需要的是能够获取包含Javascript的HTML的东西,因此我正在尝试HTMLUniti如果您只需要javascripts,只需使用任何web Scraster应用程序扩展*.js并将文件保存在本地存储中即可。我需要解析真实的和当前的页面,不幸的是,我想要的这个页面是一个单页面应用程序,稍后将通过javascript获取所需的元素。如果我使用的是Jsoup,那么它将只获取背景页面,而不是我想要的当前元素。忘记jsoup吧。你知道如何获取页面的javascript和HTML的xml元素吗?看来也不行