有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案