【问题标题】:I'd like to search something on a searching engine with java我想用java在搜索引擎上搜索一些东西
【发布时间】:2016-08-14 16:23:02
【问题描述】:

例如在 google 上,我想让我的程序询问我想在 google 上搜索什么我输入我想搜索的内容,然后我的程序在 google 上搜索它。 我必须使用 Jsoup 吗?我可以用别的吗?

【问题讨论】:

  • 具有讽刺意味的是,您可以使用 Google 找到问题的答案...

标签: java search


【解决方案1】:

您应该使用谷歌custom search API 免费版仅限前 100 个结果。

也可以使用jsoup,但是网站上的layout/css更改破坏选择器的可能性大于cs API的更改,因此使用该API更稳定。此外,来自一个 ip 的异常数量的搜索可能会导致该 ip 被阻止(只是一种推测),但如果您的应用程序只是通过用户的手动搜索,这应该不是问题。

jsoup 方法:

String searchTerm = "jsoup examples";
int numberOfResultpages = 5;
String searchUrl = "https://www.google.com/search?q="+searchTerm.replace(" ", "+")+"&start=";

Document doc;

for (int i = 0; i < numberOfResultpages; i++) {

    doc = Jsoup.connect(searchUrl+i).userAgent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36")
              .referrer("https://www.google.com/").get(); // note: not working without userAgent

    for (Element result : doc.select("h3.r a")) 
    {
        String title = result.text();
        String url = result.attr("href");

        // just printing out title and link to demonstate the approach
        System.out.println(title + " -> " + url);
    }
}

输出:

Example program: list links: jsoup Java HTML parser -> https://jsoup.org/cookbook/extracting-data/example-list-links
Extract attributes, text, and HTML from elements: jsoup Java HTML ... -> https://jsoup.org/cookbook/extracting-data/attributes-text-html
Use selector-syntax to find elements: jsoup Java HTML parser -> https://jsoup.org/cookbook/extracting-data/selector-syntax
...

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2018-08-28
    相关资源
    最近更新 更多