【发布时间】:2015-07-17 15:34:40
【问题描述】:
import com.jaunt.*;
public class JauntCrawler{
public static void main(String[] args){
try{
UserAgent userAgent = new UserAgent(); //create new userAgent (headless browser)
userAgent.visit("http://google.de"); //visit google
userAgent.doc.apply("schmetterlinge"); //apply form input (starting at first editable field)
userAgent.doc.submit(); //click submit button labelled "Google Search"
Elements links = userAgent.doc.findEvery("<h3 class=r>").findEvery("<a>"); //find search result links
for(Element link : links) System.out.println(link.getAt("href")); //print results
if(userAgent.doc.nextPageLinkExists()) {
userAgent.visit(userAgent.doc.nextPageLink().getHref());
Elements newlinks = userAgent.doc.findEvery("<h3 class=r>").findEvery("<a>");
System.out.println("\nPage 2:");
for(Element link : newlinks) System.out.println(link.getAt("href"));
}
}
catch(JauntException e){ //if an HTTP/connection error occurs, handle JauntException.
System.err.println(e);
}
}
}
我想从 Google 返回更多搜索结果,而不仅仅是首页。所以第二个for-loop基本上应该返回下一页的结果,但它没有。知道为什么吗?
【问题讨论】:
-
由于您正在抓取德语 Google 页面,它不包含文本“Page 2” 在浏览器中运行查询,并查看第一页源代码以找到德语页面 2 . 祝你好运,因为页面主要是 JavaScript 调用。
-
我只是在控制台上输出这个;)我不认为这是一个语言问题
标签: java web-crawler jaunt-api