【问题标题】:Getting the Webpage HTML code in Swift在 Swift 中获取网页 HTML 代码
【发布时间】:2016-08-09 20:25:30
【问题描述】:

我正在尝试使用以下代码获取网页的 html 代码:-

let url = NSURL(string: "http://www.example.com")
var error: NSError?
let html = NSString(contentsOfURL: url!, encoding: NSUTF8StringEncoding, error: &error)

if (error != nil) {
    print("whoops, something went wrong")
} else {
    print(html!)
}

但我在第 3 行出现以下错误(让 html = ....):-

Argument labels '(contentsOfURL:, encoding:, error:)' do not match any available overloads

【问题讨论】:

标签: ios swift


【解决方案1】:

函数是NSString(contentsOfURL url: NSURL, encoding enc: UInt) throws

您的代码应如下所示:

if let url = NSURL(string: "http://www.example.com") {
    do {
        let html = try NSString(contentsOfURL: url, encoding: NSUTF8StringEncoding)
        print(html)
    } catch {
        print("whoops, something went wrong")
    }
}

有关更多信息,请查看 Swift 中的 new way of handling errors

更新

与您的网址一起使用:

if let url = NSURL(string: "http://www.police.gov.bd/career_child.php?id=247%20order%20by%201--") {
    do {
        let html = try NSString(contentsOfURL: url, encoding: NSUTF8StringEncoding)
        print(html)
    } catch {
        print("whoops, something went wrong")
    }
}

更新 2:

要自动检测编码,请参阅this answer

【讨论】:

  • 总是执行catch,不执行do
  • @shubhammishra 如果我在操场上执行该代码,我会打印出 html 内容。确保您使用的 URL 正确(并且具有方案前缀,例如 http://https://
  • police.gov.bd/career_child.php?id=247%20order%20by%201-- 这个网址在浏览器中可以正常工作,但在上面使用时不能这样做
  • 你必须使用http://www.police.gov.bd/career_child.php?id=247%20order%20by%201--,没有http格式不好
  • 因为它是NSISOLatin1StringEncoding,而不是NSISOLatinStringEncoding。当我将上面的代码与该编码和您的网址一起使用时,它可以正常工作。 PS:我还添加了一个用于自动检测编码的新编辑
【解决方案2】:

使用下面的代码:

if let url = NSURL(string: "http://www.example.com") {
    do {
        let myHTMLString = try String(contentsOfURL: url, encoding: NSUTF8StringEncoding)
    } catch let error as NSError {
        print("Error: \(error)")
    } catch {
        print("failure")
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2012-02-27
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多