【问题标题】:How to parse the Google search result in a specific date range?如何解析特定日期范围内的谷歌搜索结果?
【发布时间】:2017-01-23 13:52:38
【问题描述】:

只在一个日期范围内设置搜索结果,有两种方法:

1) 使用google搜索运算符添加google搜索关键字

&

2) url建模(添加后缀)。

在我的 Java 应用程序中,我想通过 JSOUP 抓取特定日期范围内的谷歌新闻搜索结果(链接和标题),例如 2016

但是,我尝试了这 3 种方法,但都没有成功(包含非 2016 年的结果)。即使我在 google 搜索框(google 网站)中厌倦了这 3 种方法或添加 url 后缀,他们也不能发现 2016 年的结果。

如何解决这个问题?

通过添加谷歌搜索关键字:

字符串搜索 = "stackoverflow 日期范围:2016-01-01..2016-12-31"

字符串搜索 = "stackoverflow 日期范围:2457389-2457735"

添加网址:

+"&tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2016%2Ccd_max%3A12%2F31%2F2016"

代码:

       String google = "http://www.google.com/search?q=";

        String search = "stackoverflow daterange:2016-01-01..2016-12-31 "; //using the google search operators (daterange)

        String charset = "UTF-8";

        String news="&tbm=nws";

        String string = google + URLEncoder.encode(search , charset) + news;

        String userAgent = "ExampleBot 1.0 (+http://example.com/bot)"; 

        System.setProperty("http.proxyHost", "192.168.5.1");
        System.setProperty("http.proxyPort", "1080");
        for(int j=0;j<3;j++){
     Document document = Jsoup.connect(string+"&start="+(j+0)*10).userAgent(userAgent). ignoreHttpErrors(true).followRedirects(true).timeout(100000).ignoreContentType(true).get();
    Elements links = document.select( ".r>a");
....}

【问题讨论】:

    标签: java search jsoup google-search google-custom-search


    【解决方案1】:

    我遇到了同样的问题,结果证明这是 JSoup 1.10.2 版本中的一个错误。前往https://jsoup.org/download 并获取 1.10.3,它应该可以修复它。全部归功于回答我问题的this guy

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      相关资源
      最近更新 更多