java一些谷歌搜索结果被复制
我想在2016年获得谷歌新闻的panda
结果
根据该网站的数据,2016年的新闻结果约为500条
我试图使用下面的代码来抓取每个结果标题和URL
然而,许多代码包含许多问题。一些结果标题是重复的,它在大约120个结果处停止。而且,"&tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2016%2Ccd_max%3A12%2F31%2F2016";
不起作用。它无法仅在2016年过滤结果
我检查了string
,这是我的浏览器中谷歌搜索url应该是正确的
我不知道我的密码有什么问题
public static void main(String[] args) throws UnsupportedEncodingException, IOException {
String[] line = new String[10000];
final int[] score = { 0};
String google = "http://www.google.com.hk/search?q=";
String search = "panda";
String charset = "UTF-8";
String news="&tbm=nws";
String string = google + URLEncoder.encode(search , charset) + news+"&num=100"+"&tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2016%2Ccd_max%3A12%2F31%2F2016";
// 100 results in every pages & results in 2016
System.out.println(string);
String userAgent ="Chrome/57.0.2987.133";
int numberOfResultpages = 500; //
int idx =0;
int count =0;
for (int i = 0; i < numberOfResultpages; i++){
{
Document document = Jsoup.connect(string).userAgent(userAgent).timeout(5000) .data("start",""+i).get();
Elements links = document.select( ".r>a");
for (Element link : links) {
System.out.println(count++);
String title = link.text();
String url = link.absUrl("href"); // Google returns URLs in format "http://www.google.com/url?q=<url>&sa=U&ei=<someKey>".
url = URLDecoder.decode(url.substring(url.indexOf('=') + 1, url.indexOf('&')), "UTF-8");
if (!url.startsWith("http")) {
continue; // Ads/news/etc.
}
System.out.println("Title: " + title);
System.out.println("URL: " + url);
line[idx++]=title; // store every result titles into index[]
// }
}
}
共 (0) 个答案