【问题标题】:How to parse google for a specific site and date range?如何为特定网站和日期范围解析谷歌?
【发布时间】:2016-11-20 17:04:08
【问题描述】:

我正在尝试获取有关网站更新频率的网站详细信息,为此我使用其标准搜索关键字搜索 google 并获得所需的结果。

见网址https://www.google.co.in/search?q=site:www.codingeek.com&tbs=cdr:1,cd_min:10/11/2016,cd_max:19/11/2016

在上述查询中,我搜索了 2016 年 11 月 10 日至 2016 年 11 月 19 日期间的 codingeek 网站。

但是当我尝试从我的 Java 程序中访问相同的 URL 时,它会忽略日期条件并发送正常结果。示例 - https://www.google.co.in/search?q=site:www.codingeek.com

我使用HttpClient client = HttpClientBuilder.create().setUserAgent("Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)").build();连接页面,并使用JSoup解析和处理返回的HTML数据。

有没有什么办法可以解决这个问题,或者谷歌永远不会在浏览器和程序中返回相同的值?

【问题讨论】:

    标签: java parsing java-7 google-search


    【解决方案1】:

    试试 URLEncoder

    String url = "https://www.google.co.in/search?q="
                + URLEncoder.encode("site:www.codingeek.com", "UTF-8")
                + "&tbs=" + URLEncoder.encode("cdr:1,cd_min:10/11/2016,cd_max:19/11/2016", "UTF-8");
    

    【讨论】:

    • 仍然给出相同的结果并忽略日期(我已经复制了您编写的代码)。
    • 为此,我需要一些密钥和东西,并且仅根据我有限的研究仅限于某些站点。但是,与此同时,我已经尝试使用 htmlunit 成功完成了这项任务,并且它给出了正确的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多