【发布时间】: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