gpt4 book ai didi

swift3 - 苹果 Swift 3 中的网页抓取

转载 作者:行者123 更新时间:2023-12-02 09:57:19 25 4
gpt4 key购买 nike

我是 Swift 初学者,我正在尝试弄清楚如何从网络文章中检索文本,创建一个新的文本文件并将文本数据保存到其中(使用 Swift Playgrounds)。这可能吗?

我在网上能找到的关于这个主题的唯一内容就是这个,而且我认为它甚至不是为 Swift 3 编写的:

附注如果我的问题需要更多细节,请告诉我而不是搁置。谢谢!

import Cocoa

var url = NSURL(string: "http://finance.yahoo.com/news/tv-news-ces-2017-120931816.html")

if url != nil {

let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in

print(data)

if error == nil {

var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding) as NSString!

print(urlContent)

最佳答案

这就是 Swift 2.3。在 Swift 3 中,使用 URL 而不是 NSURL 并使用 URLSession 而不是 NSURLSession 等。您还可以使用String 而不是 NSString。例如

let url = URL(string: "http://finance.yahoo.com/news/tv-news-ces-2017-120931816.html")!

let task = URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else {
print("\(error)")
return
}

let string = String(data: data, encoding: .utf8)

print("\(string)")
}

task.resume()

如果您要在 Playground 中执行此操作,请记住这是异步运行的,因此您需要设置 needsIndefiniteExecution

import PlaygroundSupport

PlaygroundPage.current.needsIndefiniteExecution = true

要实际解析 HTML,您应该考虑使用 HTML 解析器,如 TFHpple (用 Objective-C 编写,但在 Swift 中仍然可以很好地工作)或 NDHpple (Swift 版本,我没有 TFHpple 那么有信心,但可能会工作得很好)。

您可能想查看How to Parse HTML on iOS 。它已经过时了,但会引导您了解概念(确保您没有违反网站的 ToS、如何使用解析器等)。

<小时/>

如果您想将其保存到文件中,您可以执行以下操作:

let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
.appendingPathComponent("test.dat")
try! data.write(to: fileURL)

您可以使用任何您想要的文件扩展名。

关于swift3 - 苹果 Swift 3 中的网页抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41517065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com