Jsoup无法正确解析HTML链接

时间:2013-04-16 09:37:03

标签: java jsoup

我一直在使用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代码,当我用它检查它时,代码与代码不匹配浏览器。

1 个答案:

答案 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

...