2016-02-26 51 views
2

您如何从Swift中的Google搜索结果页面URL中提取搜索关键字?如何从Swift中的Google搜索结果页面URL中提取搜索关键字?

我只是试图让蜇伤后“& Q =”,但我发现我需要考虑更复杂的情况,如“https://www.google.co.jp/search?hl=ja&q=test#q=speedtest+%E4%BE%A1%E6%A0%BC&hl=ja&prmd=nsiv&tbs=qdr:d

我会感谢你的建议。

更新: 根据LEO的建议,我提出了这样的建议。

if let url = NSURL(string: urlStr){ 

     var extractedQuery = "" 
     if let fragment = url.fragment { 
      extractedQuery = fragment 
     } else if let query = url.query{ 
      extractedQuery = query 
     } 


     if let queryRange = extractedQuery.rangeOfString("&q="){ 
      let queryStartIndex = queryRange.endIndex 
      let queryKeyword = extractedQuery.substringFromIndex(queryStartIndex) 
      print(queryKeyword) 
     } 
    } 

回答

1

您可以将您的字符串NSURL和访问它的查询和片段属性:

if let url = NSURL(string: "https://www.google.co.jp/search?hl=ja&q=test#q=speedtest+%E4%BE%A1%E6%A0%BC&hl=ja&prmd=nsiv&tbs=qdr:d"), query = url.query, fragment = url.fragment { 
    print(query) // "hl=ja&q=test\n" 
    print(fragment) // "q=speedtest+%E4%BE%A1%E6%A0%BC&hl=ja&prmd=nsiv&tbs=qdr:d\n" 
} 
+1

哇,我不知道有这样的参数! –

+0

在示例URL中,“= speedtest +%E4%BE%A1%E6%A0%BC”是我想要提取的关键字。 (“test”是原始搜索查询,并且“= speedtest +%E4%BE%A1%E6%A0%BC”是Google根据原始搜索建议的实际搜索查询,我选择了它) It看起来像“片段”参数提取后者的查询关键字,所以我做了一个逻辑,以便如果有片段参数,我使用它,否则我使用原始查询关键字。 我按照逻辑更新了我的问题。你怎么看? –