ios – 如何从Swift的URL获取HTML源代码

我需要看一个特定URL给出的页面HTML.如果我有这个,使用 Swift获得该URL的HTML源的最有效和同步的方法是什么?我无法找到一个简洁的在线方式,将其返回到一个变量中,而不是在一个完成中打印它.

我需要操纵任何调用使用URL的源代码.这样做在Swift呢?

解决方法

你应该看看方法

stringWithContentsOfURL:encoding:error(docs)

你可以在Objective C中这样称呼:

Nsstring *myURLString = @"http://google.com";
NSURL *myURL = [NSURL URLWithString:myURLString];

NSError *error = nil;
Nsstring *myHTMLString = [Nsstring stringWithContentsOfURL:myURL encoding: NSUTF8StringEncoding error:&error];

if (error != nil)
{
    NSLog(@"Error : %@",error);
}
else
{
    NSLog(@"HTML : %@",myHTMLString);
}

所以在Swift 3中,相当于:

let myURLString = "https://google.com"
guard let myURL = URL(string: myURLString) else {
    print("Error: \(myURLString) doesn't seem to be a valid URL")
    return
}

do {
    let myHTMLString = try String(contentsOf: myURL,encoding: .ascii)
    print("HTML : \(myHTMLString)")
} catch let error {
    print("Error: \(error)")
}

您可能需要根据页面使用的编码来调整编码(请参阅constants).

老回答,Swift 2.2:

let myURLString = "http://google.com"
guard let myURL = NSURL(string: myURLString) else {
    print("Error: \(myURLString) doesn't seem to be a valid URL")
    return
}

do {
    let myHTMLString = try String(contentsOfURL: myURL)
    print("HTML : \(myHTMLString)")
} catch let error as NSError {
    print("Error: \(error)")
}

老回答,斯威夫特1.2:

let myURLString = "http://google.com"

if let myURL = NSURL(string: myURLString) {
    var error: NSError?
    let myHTMLString = Nsstring(contentsOfURL: myURL,encoding: NSUTF8StringEncoding,error: &error)

    if let error = error {
        println("Error : \(error)")
    } else {
        println("HTML : \(myHTMLString)")
    }
} else {
    println("Error: \(myURLString) doesn't seem to be a valid URL")
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...