0

我对编码和解析来自网站的 html 数据相当了解。问题是我在查看网站时可以手动检查的元素与源代码有很大不同。我理解这是因为“检查元素”在浏览器应用其纠错之后以及在任何 Javascript 操作 DOM 之后显示 DOM 树的状态。

以下是相关代码:

import SwiftSoup

        
let url = URL(string: link)

let task = URLSession.shared.dataTask(with: url!) { [self] (data, response, error) in            
    do {
        let htmlContent = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
        let doc: Document = try SwiftSoup.parse(htmlContent! as String)

        let elements = try doc.getAllElements().array()                    
                    
    } catch Exception.Error(type: let type, Message: let message) {
        print(type)
        print(message)
    } catch {
        print("error")
    }
                
}

我的问题是;我可以做些什么来解析手动检查时出现的网站元素?对不起,如果这是一个初学者问题。

4

1 回答 1

0

当您在代码中请求页面时,您注意到在浏览器中加载后的网页是不同的。这是因为某些网页会在需要提高性能时“延迟”加载数据或其他 html。

要在代码中获取此 html,您需要在浏览器的开发人员工具中分析网络“XHR”选项卡。您应该能够在那里找到丢失的 html。

于 2021-08-19T06:05:51.607 回答