2016-02-26 50 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看起來像「片段」參數提取後者的查詢關鍵字,所以我做了一個邏輯,以便如果有片段參數,我使用它,否則我使用原始查詢關鍵字。 我按照邏輯更新了我的問題。你怎麼看? –