我有一个小项目,我正在从网页中抓取信息。作为开始步骤,我开始查看页面源代码
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 函数调用时未运行有关。
我将如何获取所有页面信息,以便我可以开始从搜索结果中检索信息。