使用Swift和URLSession进行异步网络请求,爬取京东商品数据的简单示例

194 阅读1分钟

在现代 iOS 开发中,推荐使用 URLSession 来进行网络请求,而不是过时的 NSURLConnection。此外,Swift 是一种更为现代的语言,可以提供更简洁、安全的语法。

image.png 以下是一个简单的 Swift 示例,展示如何使用 URLSession 进行异步网络请求:

import Foundation
http://www.jshk.com.cn/mb/reg.asp?kefu=xiaoding;//爬虫IP免费获取;

class ProductCrawler {
    
    func crawlJingDongProductData() {
        guard let url = URL(string: "https://www.example.com/products") else {
            return
        }
        
        let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
            if let error = error {
                print("Error: (error)")
                return
            }
            
            guard let data = data else {
                print("No data received")
                return
            }
            
            // 解析数据并处理
            
            // 例如,可以使用 JSONDecoder 来解析 JSON 数据
            do {
                let products = try JSONDecoder().decode([Product].self, from: data)
                print(products)
            } catch {
                print("Error decoding JSON: (error)")
            }
        }
        
        task.resume()
    }
    
}

struct Product: Codable {
    // 定义 Product 的属性
}

请注意,上述示例中使用了 Codable 协议来定义 Product 结构体,这是 Swift 中方便的一种方式,用于将数据模型与 JSON 数据进行映射。在实际项目中,你需要根据京东返回的数据结构来定义相应的 Swift 模型。

以上只是一个简单的示例,实际项目中需要更多的错误处理、数据解析和UI更新等操作。