Beautiful Soup 是一个专为快速周转项目如屏幕抓取而设计的 Python 库。自 2004 年以来,它为程序员在快速周转的屏幕抓取项目中节省了数小时或数天的工作时间。
Beautiful Soup 具有几个强大的功能。它提供了一些简单的方法和 Python 风格的习惯用法,用于导航、搜索和修改解析树,就像一个用于剖析文档并提取所需内容的工具包。使用 Beautiful Soup 编写应用程序不需要太多代码。
该库会自动将传入的文档转换为 Unicode,将传出的文档转换为 UTF - 8。除非文档未指定编码且 Beautiful Soup 无法检测到,否则您无需考虑编码问题。在这种情况下,您只需指定原始编码。
Beautiful Soup 位于流行的 Python 解析器(如 lxml 和 html5lib)之上,允许您尝试不同的解析策略,或以速度换取灵活性。它可以解析您提供的任何内容,并为您完成树遍历工作。您可以告诉它“查找所有链接”、“查找所有类为 externalLink 的链接”、“查找所有网址匹配‘foo.com’的链接”或“查找具有粗体文本的表格标题,然后给我该文本”等。
曾经锁定在设计不良的网站中的有价值数据,现在可以通过 Beautiful Soup 轻松获取。使用 Beautiful Soup,原本需要数小时的项目现在只需几分钟即可完成。
Beautiful Soup 4.12.3 是当前版本(2024 年 1 月 17 日发布)。您可以使用 pip install beautifulsoup4
进行安装。在 Debian 和 Ubuntu 中,它作为 python3 - bs4
包可用;在 Fedora 中,它作为 python3 - beautifulsoup4
包可用。Beautiful Soup 遵循 MIT 许可证,您也可以下载压缩包,将 bs4 /
目录放入几乎任何 Python 应用程序(或您的库路径)中并立即开始使用。它支持 Python 3.6 及更高版本,对 Python 2 的支持已于 2021 年 1 月 1 日停止。
Beautiful Soup 3 曾是 2006 年 5 月至 2012 年 3 月的官方发布版本,它不支持 Python 3,也已于 2021 年 1 月 1 日停止支持。如果您有使用 Beautiful Soup 3 的活跃项目,应将其迁移到 Beautiful Soup 4 以完成向 Python 3 的转换。
多年来,Beautiful Soup 已在数百个不同的项目中得到应用。例如,“Movable Type”(在纽约时报大楼大厅展示的数字艺术作品)使用 Beautiful Soup 抓取新闻提要;Jiabao Lin 的 DXY - COVID - 19 - Crawler 使用它从中国医疗网站抓取有关 COVID - 19 的信息,方便研究人员跟踪病毒的传播;Reddit 使用它来解析链接页面并找到代表性图像;Alexander Harrowell 使用它来跟踪军火商的商业活动;Python 开发者使用它将 Python 错误跟踪器从 Sourceforge 迁移到 Roundup;Lawrence Journal - World 使用它收集全州选举结果;NOAA 的 Forecast Applications Branch 在 TopoGrabber(用于下载高分辨率 USGS 数据集的脚本)中使用它。
如果您在项目中使用了 Beautiful Soup 并希望我了解,欢迎通过电子邮件或讨论组与我联系。开发工作在 Launchpad 进行,您可以获取源代码或提交错误报告。