2017-07-05 64 views
-2

我有一個只顯示簡單文本信息的網頁,但我不確定如何使用swift獲取文本。我很樂於使用任何方法,因爲我認爲這是一個簡單的問題,我只是不確定要尋找什麼來尋找答案。如何在ios中快速讀取網頁上的文本

下面是可以根據用戶修改最後一部分「player = bob」的網頁。由於

http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=bob

+0

你應該看看JSON對象以及如何解析JSON在迅速。 P.S. SO的問題太廣泛了。在提問時你必須具體。你應該證明你已經嘗試了什麼,以及你需要什麼幫助 – Malik

回答

1

您可以使用URLSession dataTask(網址爲:)異步下載您的字符串數據:

import UIKit 
import PlaygroundSupport 
PlaygroundPage.current.needsIndefiniteExecution = true 


let scheme = "http" 
let host = "services.runescape.com" 
let path = "/m=hiscore_oldschool/index_lite.ws" 
let player = "bob" 
let queryItem = URLQueryItem(name: "player", value: player) 

var urlComponents = URLComponents() 
urlComponents.scheme = scheme 
urlComponents.host = host 
urlComponents.path = path 
urlComponents.queryItems = [queryItem] 
if let url = urlComponents.url { 
    print(url) // "http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=bob\n" 

    URLSession.shared.dataTask(with: url) { data, response, error in 
     guard let data = data, error == nil, let string = String(data:data, encoding: .utf8) else { return } 
     print(string) // 58009,1806,205602075\n348,99,59484076\n14451,99,16670682\n22760,99,16641294\n4372,99,35456433\n64147,99,13034611\n14021,99,13034458\n269415,79,1897071\n57799,99,13034505\n42650,87,4136181\n262455,70,742935\n12795,99,13034536\n254495,60,275820\n89361,75,1213576\n190818,62,341931\n272854,60,284103\n111969,66,507089\n66399,74,1177748\n64643,72,915704\n10231,99,13059448\n187538,52,132708\n162920,50,106555\n175923,62,351621\n295606,46,68990\n327642,1\n179487,5\n72965,106\n-1,-1\n-1,-1\n48877,85\n-1,-1\n24712,15\n-1,-1\n\n" 
    }.resume() 
} 
+0

即使它抱怨http不安全,是否還有任何方法可以做到這一點? –

+0

https://stackoverflow.com/a/30907070/2303865 –

-1

你想從一個UIWebView或WKWebView得到字符串?

如果使用UIWebView,首先必須設置UIWebView委託。

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSString *newString = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]; 
}

'newString'是webView中的HTML字符串。如果您想在頁面上使用真正的顯示,則需要翻譯字符串。 我希望能幫到你。 如果您使用WKWebView,這可能不起作用。