【问题标题】:how to find search word from google URL如何从谷歌网址中找到搜索词
【发布时间】:2016-01-06 06:00:11
【问题描述】:

我正在 Google 中搜索一个词(Rest call)。我有三个 URL 用于一次搜索。

  1. 在多功能框中搜索(我们点击网址的浏览器输入框)显示如下网址。(我的默认搜索引擎是谷歌)

    https://www.google.co.in/search?q=rest+call+in+java&ie=utf-8&oe=utf-8&gws_rd=cr&ei=BaaMVoLbHIKEuwT_oIQI
    
  2. 从谷歌主页搜索显示如下网址。

    https://www.google.co.in/?gws_rd=ssl#q=rest%20call%20in%20java
    
  3. 从谷歌搜索,但这次我从谷歌已经显示的结果页面点击谷歌标志(它转到https://www.google.co.in/webhp?hl=en),在这个谷歌页面搜索后显示如下网址,

    https://www.google.co.in/webhp?hl=en#hl=en-IN&q=rest+call+in+java
    

以上三个 url 对于相同的查询文本显示的结果相同,但三个不同的 URL。

我想获取在 Google 文本框中搜索到的单词。如何从 Java 中得到这个词。

我知道如果我们使用字符串正则表达式,我们可以得到,但是对于相同的搜索有三种类型的 URL。

【问题讨论】:

    标签: java url google-search


    【解决方案1】:

    所有 URL 都使用相同的模式来指定搜索词,它位于 q 查询字符串下。您可以使用String.indexOf 方法并操作此模式来获取搜索词。

        //this is the url, it can be any of the 3 variants 
        String s = "https://www.google.co.in/search?q=rest+call+in+java&ie=utf-8&oe=utf-8&gws_rd=cr&ei=BaaMVoLbHIKEuwT_oIQI";
    
        //find the beginning of the searched term 
        int i = s.indexOf("q=");
    
        //find the end of the searched term
        int j = s.indexOf("&", i);
        j = j == -1 ? s.length() : j;
    
        //extract the searched term and decode
        String q = URLDecoder.decode(s.substring(i + 2, j));
    

    正如您提到的另一种方法是使用regex。您不必为单独的 URL 使用单独的 regex。一个regex 就可以了。

        //this is the url, it can be any of the 3 variants 
        String s = "https://www.google.co.in/search?q=rest+call+in+java&ie=utf-8&oe=utf-8&gws_rd=cr&ei=BaaMVoLbHIKEuwT_oIQI"; 
    
        //prepare the regex
        Pattern pattern = Pattern.compile("q=(.*?)(?:&|$)");
        Matcher matcher = pattern.matcher(s);
    
        //extract and decode
        String q = matcher.find() ? URLDecoder.decode(matcher.group(1)) : "";         
    

    【讨论】:

      猜你喜欢
      • 2012-08-19
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多