gpt4 book ai didi

java - 从 Web url 检索完整页面源

转载 作者:行者123 更新时间:2023-12-02 06:40:23 25 4
gpt4 key购买 nike

我正在开发一个小项目,从网页中抓取信息。作为开始,我开始查看

的页面源代码

http://www.walmart.com/search/search-ng.do?search_query=camera&ic=16_0&Find=Find&search_constraint=0

分析完我需要做什么后,我尝试使用两种方法检索相同的页面信息,但均不成功

首先,我使用 Jsoup 尝试了一个简单的请求,如下所示

    Document doc;
try {
doc = Jsoup.connect("http://www.walmart.com/search/search-ng.do?search_query=camera&ic=16_0&Find=Find&search_constraint=0").get();

System.out.println(doc);

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

这显示了一些页面信息,但不是包含所有搜索结果的实际页面源

然后我尝试了 Apache Commons http 解决方案,看起来像

    String url = "http://www.walmart.com/search/search-ng.do?search_query=camera&ic=16_0&Find=Find&search_constraint=0";
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost request = new HttpPost(url);

HttpResponse response;
try {
response = httpclient.execute(request);
StatusLine status = response.getStatusLine();
String responseString = EntityUtils.toString(response.getEntity());

System.out.println(status);
System.out.println(responseString);

} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

但我不断收到页面永久移动状态。

到目前为止,Jsoup 似乎是我前进的最佳选择。我认为未收到所有搜索结果的问题与 Jsoup 的 get 函数调用时页面上的脚本未运行有关。

如何获取所有页面信息,以便我可以开始从搜索结果中检索信息。

最佳答案

Jsoup 不支持 JavaScript 的执行,这意味着您将无法解析动态生成的 HTML。简单来说,Jsoup并不是模拟浏览器环境,而是一个纯粹的解析器。

我建议您改用 HtmlUnit,它是“Java 程序的无 GUI 浏览器”。它支持 javascript 执行,可用于生成 HTML 源代码,您稍后可能希望使用 Jsoup 更轻松地解析。

可以找到HtmlUnit here .

关于java - 从 Web url 检索完整页面源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com