要仅在日期范围内设置搜索结果,有两种方法:
1)使用谷歌搜索运算符添加谷歌搜索关键字
&安培;
2)对网址建模(添加后缀)。
在我的Java应用程序中,我想通过JSOUP在特定的日期范围内搜索谷歌新闻搜索结果(链接和标题),如2016
然而,我尝试了这3种方法,其中没有一种是成功的(包含非2016年的结果)。即使我厌倦了谷歌搜索框(google网站)中的这3种方法或添加了网址后缀,他们也不能发现2016年的结果。
如何解决这个问题?
添加Google搜索关键字:
字符串搜索=" 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");
....}
答案 0 :(得分:0)
我遇到了同样的问题,结果证明这是JSoup的1.10.2版本中的一个错误。转到https://jsoup.org/download并抓住1.10.3,它应该修复它。 this guy所有回答我问题的信用。