ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

SwiftSoup HTML解析快速上手:从安装到提取数据只要 10 分钟

SwiftSoup HTML解析快速上手:从安装到提取数据只要 10 分钟 SwiftSoup HTML解析快速上手从安装到提取数据只要 10 分钟【免费下载链接】SwiftSoupSwiftSoup: Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS)项目地址: https://gitcode.com/gh_mirrors/sw/SwiftSoup当你要从一堆网页里把标题、列表、表格抠出来自己写解析又总被没闭合的标签搞崩溃时SwiftSoup 这个纯 Swift HTML解析库正好派上用场把 HTML 丢给它拿回一棵能用 CSS 选择器查询的解析树。它按 WHATWG HTML5 规范做 HTML解析残缺、嵌套混乱的标签也能产出和现代浏览器一致的树结构数据位置不会跑偏。写 Web爬虫、做内容聚合、要批量抓结构化数据的 Swift 开发者往下看10 分钟跑通第一个例子。 它适合解决什么做 Web 爬虫从商品页、文章页批量抠标题、链接、列表项落库或导出内容聚合把各站点 HTML 抓回来统一抽正文去掉广告和导航杂项内容安全用白名单清理用户提交的 HTML滤掉 script 等危险标签防 XSS⏱ 动手前5 分钟跑通第一个例子环境要求很轻Swift 5 工具链加 SPM 就行macOS 10.15、iOS 13、tvOS 13、watchOS 6、Linux 都支持。SwiftSoup 安装只需在 Package.swift 里加一行依赖dependencies: [ .package(url: https://gitcode.com/gh_mirrors/sw/SwiftSoup.git, from: 2.6.0), ]iOS 工程用 CocoaPods 也行Podfile 里写pod SwiftSoup即可。装好后import SwiftSoup就能用。 主线三步解析 → 选取 → 取数整条主线就三件事把 HTML 变成 Document用选择器圈出目标把文本和属性拿出来。1. 一行代码把 HTML 解析成 Documentlet html htmlbodyp classitem苹果/pp classitem香蕉/p/body/html let doc try SwiftSoup.parse(html)一行完成 HTML解析doc 就是整棵 DOM 树后面两步都基于它。2. 用 CSS 选择器圈出目标元素let items try doc.select(p.item)语法和浏览器开发者工具里写的一样#id、.class、[attr^value]都能用。完整的 SwiftSoup 选择器速查表在 README.md写不准时直接翻。3. 取出文本和属性for item in items { print(try item.text()) } // 输出苹果、香蕉要属性换成try item.attr(class)要原始 HTML 片段用outerHtml()。 两个高频场景实战场景一批量提取链接列表let links try doc.select(a[href]) for a in links { print(try a.attr(href), |, try a.text()) }一个页面里所有外链一行选择器全拿下来。做聚合站时这一步常和节流请求配套使用。场景二抓取表格数据let rows try doc.select(table tr) for tr in rows { print(try tr.select(td).map { try $0.text() }) }每行输出一个字符串数组拉平后就能直接导出 CSV。⚠️ 容易踩的坑select 查不到时返回空数组而不是抛异常。先打印try doc.html()看解析树再检查#和.是否写反。网页编码拿不准时别用 String(contentsOf:) 转字符串改用SwiftSoup.parse(url)让库按原始字节做 HTML解析避免中文乱码。它只解析你喂进去的 HTML。内容靠 JS 渲染的页面拿到的是空壳得改抓数据接口或静态页。循环里反复用同一条选择器是典型的 SwiftSoup 性能优化点预解析成 Evaluator或调 QueryParser.cache 上限省掉每次重解析选择器串的开销。爬取请控制请求频率先看目标站点的 robots.txt 和使用条款。想看完整演示打开 Example/ 里的 iOS 示例工程边点边试。【免费下载链接】SwiftSoupSwiftSoup: Pure Swift HTML Parser, with best of DOM, CSS, and jquery (Supports Linux, iOS, Mac, tvOS, watchOS)项目地址: https://gitcode.com/gh_mirrors/sw/SwiftSoup创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进