解析Google搜索结果错误

时间:2016-09-20 10:41:49

标签: java parsing jsoup google-search-api

我参考了解析谷歌搜索结果的答案。

How can you search Google Programmatically Java API

然而,当我尝试代码。出现错误。

我应该如何进行修改?

import java.net.URLDecoder;
import java.net.URLEncoder;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements ;

public class JavaApplication22 {
public static void main(String[] args) {
   String google = "http://www.google.com/search?q=";
   String search = "stackoverflow";
   String charset = "UTF-8";
    String userAgent = "ExampleBot 1.0 (+http://example.com/bot)"; // Change this to your company's name and bot homepage!

    Elements links = Jsoup.connect(google + URLEncoder.encode(search, charset)).userAgent(userAgent).get().select(".g>.r>a");

    for (Element link : links) {
        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);
    }
}

}

我想这是因为图书馆很重要。 但是我尝试了ctrl +shift+i。它表明在import语句中无需修复。

错误

Exception in thread "main" java.lang.RuntimeException: Uncompilable
source code - unreported exception java.io.IOException; must be caught
or declared to be thrown    at
javaapplication22.JavaApplication22.main(JavaApplication22.java:32)

我应该如何修改代码以便解析Google搜索结果?

1 个答案:

答案 0 :(得分:1)

请使用以下代码替换您的主要课程:

public static void main(String[] args) throws UnsupportedEncodingException, IOException {

    String google = "http://www.google.com/search?q=";

    String search = "stackoverflow";

    String charset = "UTF-8";

    String userAgent = "ExampleBot 1.0 (+http://example.com/bot)"; // Change this to your company's name and bot homepage!

    Elements links = Jsoup.connect(google + URLEncoder.encode(search, charset)).userAgent(userAgent).get().select(".g>.r>a");

    for (Element link : links) {
        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);
    }
}