PYTHON帮助

使用 Python 中的 BeautifulSoup 进行网络抓取

得益于 Beautiful Soup 和 IronPDF 的结合,Python 开发人员现在可以创建动态 PDF 并简化网络搜刮。 开发人员可以使用 Beautiful Soup 从网络资源中轻松、准确地提取所有数据,该工具以善于解析 HTML 和 XML 文件而闻名。 同时,IronPDF 是一款功能强大的工具,具有平滑的集成和扎实的功能,可用于以编程方式生成 PDF 文档。

这两款功能强大的工具结合在一起,使开发人员能够以无与伦比的效率自动完成创建发票、内容归档和生成报告等流程。 在这篇介绍性文章中,我们将深入探讨 Beautiful Soup Python 库和 IronPDF 的细微差别,突出它们各自的优点以及结合后的革命性潜力。 让我们一起探索充分利用网络搜刮工具和 PDF 创建工具为 Python 开发人员带来的机遇。

Beautiful Soup Python(如何为开发者工作):图1 - Beautiful Soup主页

HTML/XML 解析

Beautiful Soup 擅长解析 HTML 标记和 XML 文档,将其转化为可操作的解析树,以便进行探索。 它还能轻松容纳不正确的 HTML 元素,因此开发人员可以处理不完整的数据,而不必担心解析问题。

在 HTML 页面上查找特定项目

Beautiful Soup 的用户友好导航技术可以让用户轻松找到 HTML 页面上的特定项目。 使用像searchfind_allselect这样的技术,开发人员可以导航树结构,并根据标签、属性或CSS选择器精确定位元素。

访问标签特征和内容

一旦元素被定位到解析树中,Beautiful Soup 就会提供检索元素特征和内容的简便方法。 开发人员可以获取与标签关联的任何自定义属性,以及href属性和其他如classid的属性。 为了进行更多处理,他们还可以访问元素的内部 HTML 元素或文本内容。

搜索和筛选

Beautiful Soup 具有强大的搜索和过滤功能,可以让开发人员根据不同的标准查找组件。 他们还可以使用正则表达式来实现更复杂的匹配模式。 他们可以搜索特定标签,并根据特征或 CSS 类筛选项目。 您可以使用requests库来获取网页以供解析,从而进一步简化此过程。 这种灵活性有助于从 HTML/XML 文档中提取特定数据。

解析树导航

在文档结构中,开发人员可以在解析树中上下左右移动。 通过 Beautiful Soup,可以访问父元素、同级元素和子元素,从而更方便地详细探索文档层次结构。

数据提取

Beautiful Soup 的一个基本功能是从 HTML 和 XML 文本中提取数据的能力。 开发人员可以轻松地从网页中提取文本、链接、照片、表格和其他内容项目。 他们可以通过整合导航、过滤和遍历算法,从复杂的文档中提取某些数据点或整块内容。

注意编码和实体

Beautiful Soup 会自动处理字符编码和 HTML 网页实体,确保在出现编码问题或特殊字符时仍能准确处理文本数据。 该功能无需进行实体解码或手动编码转换,从而使处理各种来源的网络材料变得更加容易。

解析树修改

Beautiful Soup 不仅便于提取,还允许开发人员动态更改解析树。 根据需要,他们可以重组文档结构,添加、删除或更改标记和属性,或添加新元素。 该功能可以在文档中进行数据清理、内容扩充和结构修改等操作。

为 Python 创建和配置美丽的汤

选择解析器

要处理 HTML 或 XML 文档,Beautiful Soup 需要一个解析器。 默认情况下,它使用 Python 内置的html.parser。 为了更高的效率或更好地兼容特定的文档,您可以指定不同的解析器,如lxmlhtml5lib。 在构造一个BeautifulSoup对象的过程中,您可以提供解析器:

from bs4 import BeautifulSoup
# Specify the parser (e.g., 'lxml' or 'html5lib')
soup = BeautifulSoup(html_content, 'lxml')
python
PYTHON

设置解析选项

Beautiful Soup 提供了几种改变解析操作方式的选择。 例如,您可以关闭将 HTML 实体转换为 Unicode 字符的功能,或激活更严格的解析选项。 当创建BeautifulSoup对象时,这些设置会作为参数提供。 这是如何关闭实体转换的示例:

from bs4 import BeautifulSoup
# Disable entity conversion
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
python
PYTHON

编码检测

Beautiful Soup 会自动判断文档的编码。 但有时,特别是当内容不清楚或存在编码问题时,您可能需要明确说明编码。 在创建BeautifulSoup对象时,您可以选择定义编码:

from bs4 import BeautifulSoup
# Specify the encoding (e.g., 'utf-8')
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
python
PYTHON

输出格式

默认情况下,Beautiful Soup 会在解析后的内容中添加换行符和缩进,以方便阅读。 另一方面,在构造BeautifulSoup对象时,您可以使用formatter选项来改变输出格式。 举例说明,关闭漂亮打印:

from bs4 import BeautifulSoup
# Disable pretty-printing
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
python
PYTHON

NavigableStringTag 子类

您可以更改 Beautiful Soup 用于 NavigableStringTag 对象的类。 这将有助于扩展 Beautiful Soup 的功能或将其与其他库集成。 在构造BeautifulSoup对象时,你可以传入NavigableStringTag的子类作为参数。

入门

什么是IronPDF?

对于用 C#、VB.NET 和其他 .NET 语言以编程方式制作、编辑和修改 PDF 文档,IronPDF for .NET 是一个强大的 .NET 库。 它是许多应用程序的热门选择,因为它为开发人员动态创建高质量 PDF 提供了广泛的功能集。

Beautiful Soup Python(如何为开发人员工作):图 2 - IronPDF 首页

IronPDF 的功能

  • PDF生成:借助IronPDF,开发人员可以将HTML标记、文本、图片和其他文件格式转换为PDF,或从头开始创建PDF文档。 对于动态创建报告、发票、收据和其他文件,这一功能非常有用。
  • 将HTML转换为PDF:IronPDF使开发人员能够轻松地将HTML结构——包括JavaScript和CSS样式——转换为PDF文档。 这使得从 HTML 模板、网页和动态创建的材料中创建 PDF 成为可能。
  • 编辑和操作PDF文档:IronPDF为现有PDF文档提供了广泛的编辑和操作功能。 为了按照自己的要求修改 PDF,开发人员可以合并多个 PDF 文件,将其划分为不同的文档,提取页面,添加书签、注释和水印等。

安装

必须先安装 IronPdf 和 Beautiful Soup。为此可以使用 Python 的软件包管理器 Pip。

pip install beautifulsoup4 
pip install ironpdf
pip install beautifulsoup4 
pip install ironpdf
SHELL

导入库

然后,使用所需的库导入您的 Python 脚本。

from bs4 import BeautifulSoup
from ironpdf import IronPdf
python
PYTHON

使用美丽汤进行网络抓取

利用 Beautiful Soup 从网站中提取信息。想象一下,我们希望从网页中提取一篇文章的标题和内容。

# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p></p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')
# Extract title and content
title = soup.find('title').text
content = soup.find('body').text
print('Title:', title)
print('Content:', content)
python
PYTHON

使用 IronPDF 生成 PDF

现在,让我们利用 IronPDF 将提取的数据创建一个 PDF 文档。

from ironpdfpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
pdf = IronPdf()
# Add title and content to the PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}, {}!</p></body></html>"
    .format(title, title, content)
)
# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
python
PYTHON

此脚本将获取示例文章的标题和文本,抓取它,并将HTML数据存储为一个名为sample_article.pdf的PDF文件,保存在当前目录中。

Beautiful Soup Python(开发者如何使用):图3 - 上述代码示例输出

结论

总之,希望优化数据提取和文档创建工作流程的开发人员将发现 Beautiful Soup Python 和 IronPDF 的强大组合。 IronPDF 的强大功能可以动态生成专业级 PDF 文档,而 Beautiful Soup 的简易解析技能可以从网络资源中提取有用的数据。

这两个库结合在一起,可为开发人员提供自动执行各种操作所需的资源,包括创建发票、报告和网络扫描。 Beautiful Soup 和 IronPDF 之间的合作使开发人员能够快速有效地实现他们的目标,无论是包括从错综复杂的 HTML 代码中提取数据,还是即时创建定制的 PDF 出版物。

捆绑购买 IronPdf 时价格合理,并附带终身许可证。 由于该软件包仅需$749,这是针对多系统的一次性付款,因此它提供了极高的价值。 许可证持有者可以全天候获得在线工程支持。 有关收费的更多信息,请访问网站。要了解有关 Iron Software 产品的更多信息,请访问该网站。

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
用 Python 中的顽强重试函数
下一步 >
使用 Python 进行分布式计算

准备开始了吗? 版本: 2025.5 刚刚发布

查看许可证 >