获取信息是否存在谷歌搜索结果(JAVA)

问题描述:

我尝试解析谷歌的搜索结果。我需要的不是搜索结果本身,而是我需要的信息是否存在搜索结果!获取信息是否存在谷歌搜索结果(JAVA)

现在我的问题是我想搜索组合的字符串。例如。 “最大测试人员”。 现在谷歌真的很好,并告诉我: 我们未能找到“Max Testperson”的搜索结果,而是用于Max Testperson。但是!我不需要Max Testperson,我需要“Max Testperson”。

因此,基本上我对搜索结果本身不感兴趣,而是对搜索结果之前的部分(是否可以找到搜索字符串!)感兴趣。

我曾经在java中下面的教程: http://mph-web.de/web-scraping-with-java-top-10-google-search-results/

有了这个,我可以解析的搜索结果。但就像我说的!没有必要!我只想知道我的搜索字符串是否存在。由于谷歌删除 - >“”< - 我得到的搜索结果反正。

任何人都可以帮我解决这个问题吗?

+0

也许这是值得看看[谷歌自定义搜索(https://developers.google.com/custom-search/)。 – SubOptimal

+0

您应该提供更好的测试用例,因为有“Max Testperson”的搜索结果。例如,“Max Testprson”就是一个很好的例子。 –

尝试将GET参数nfpr=1添加到您的搜索禁用自动校正功能:

final Document doc = Jsoup.connect("https://google.com/search?q=test"+"&nfpr=1").userAgent(USER_AGENT).get(); 

更新:

您可以解析为关于没有结果的消息:

public class App { 
    public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36"; 

    public static void main(String[] args) throws Exception { 

     String searchTerm = "\"daniel+nasseh\"+\"26.02.1987\""; 
     boolean hasExactResults = true; 

     final Document doc = Jsoup.connect("https://google.com/search?q=" + searchTerm + "&nfpr=1") 
       .userAgent(USER_AGENT).get(); 

     Elements noResultMessage = doc.select("div.e.obp div.med:first-child"); 

     if (!noResultMessage.isEmpty()) { 

      hasExactResults = false; 

      for (Element result : noResultMessage) { 
       System.out.println(result.text()); 
      } 
     } 

     if (hasExactResults) { 
      // Traverse the results 
      for (Element result : doc.select("h3.r a")) { 

       final String title = result.text(); 
       final String url = result.attr("href"); 

       System.out.println(title + " -> " + url); 
      } 
     } 
    } 
} 

更新2:从Donselm自己在评论中提出的最佳解决方案是添加&tbs=li:1,迫使搜索精确的搜索词

String searchTerm = "\"daniel+nasseh\"+\"26.02.1987\""; 

final Document doc = Jsoup.connect("https://google.com/search?q=" + searchTerm + "&tbs=li:1").userAgent(USER_AGENT).get(); 
+0

你好,感谢您的反馈。不幸的是,它似乎不起作用。即使我添加“&nfpr = 1”,我仍然可以得到没有引用的搜索字词的建议和结果。 – Donselm

+1

好吧,我想我可以自己解决:-) =>这一个做了伎俩“&tbs = li:1” – Donselm

+0

啊,很好找,比我的修复更简单。 –