我一直在使用Jsoup与谷歌搜索博客一起工作,所有工作都很好,但当我使用另一个像WhosTalkin这样的网站时,我无法提取结果数据和链接。我的代码:
Connection.Response response = null;
String url = "http://www.whostalkin.com/search?q=boston&x=0&y=0";
//
try {
response = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31")
.timeout(10000)
.execute();
} catch (IOException e) {
System.out.println("io - "+e);
}
// get page title
Document doc = response.parse();
String title = doc.title();
System.out.println("Page Title: " + title +"\n");
这里是我提取数据的部分:
Elements links = doc.getElementsByTag("h3");
for (Element link : links) {
System.out.println("\nTitle: " + link.select("a").attr("title"));
System.out.println("Result: " + link.select("a").attr("href"));
}
当我只是想确保Jsoup无法正确解析HTML我使用Try Jsoup并获取URL时,他给了我HTML代码,当我用它检查它时,代码与代码不匹配浏览器。
答案 0 :(得分:1)
您没有使用正确的选择器。查找drill
CSS类。更容易找到元素。
Elements elementsByClass = parse.getElementsByClass("drill");
for (Element link : elementsByClass)
{
List<Node> childNodes = link.childNodes();
System.out.println("Title: " + childNodes.get(1));
System.out.println("Result: " + childNodes.get(0).attr("src"));
}
<强>打印强>
Title: Backtype
Result: http://www.whostalkin.com/img/backtype.png
Title: FriendFeed
Result: http://www.whostalkin.com/img/friendfeed.png
...