如何使用Jsoup从Google获取#resultStats

时间:2015-10-28 20:57:08

标签: android android-studio jsoup

我正在尝试获取Google向我们展示的文章数量:

This是对jeb bush barack obama的Google搜索,它显示了我需要的号码,即10,200,000文章

如何使用Jsoup及其任何组件来获取该数字?

我试过了:
      Document document = Jsoup.connect(url).get(); Elements description = document.select("div#resultStats"); desc = description.attr("content");

注意:我正在使用Android Studio,我想将结果保存到矩阵中。

编辑:我Here就HTML源代码的文章数量而言。

1 个答案:

答案 0 :(得分:2)

实际上,您可能需要运行一些优化的javascript代码(适用于现代浏览器)以查看实际结果统计信息。而是更改您的用户代理字符串(对于最旧的浏览器UA字符串)和下面代码中的URL:

样本

http://try.jsoup.org/~iYErM3BgfjILVJZshDMkAd-XQCk

示例代码

String url = "https://www.google.com/search?q=jeb+bush+barack+obama";

Document document = Jsoup //
                   .connect(url) //
                   .userAgent("Mozilla/5.0 (Windows; U; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)") //
                   .get();

Element divResultStats = document.select("div#resultStats").first();
if (divResultStats==null) {
    throw new RuntimeException("Unable to find results stats.");
}

System.out.println(divResultStats.text());

输出(截至撰写本文时......)

About 10,500,000 results

在Jsoup 1.8.3上测试

更多UA字符串:http://www.useragentstring.com/