0

我一直在将 Jsoup 与 Google 搜索博客一起使用,一切正常,但是当我使用另一个网站时,例如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 代码。

4

1 回答 1

1

您没有使用正确的选择器。寻找drillCSS 类。更容易接触元素。

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

...
于 2013-04-16T10:00:27.070 回答