使用 BeautifulSoup 查找给定标签的文本


BeautifulSoup 是一款功能强大的工具,可以轻松地从 HTML 和 XML 文档中提取信息,主要使用 Python 开发,用于网页抓取和网页数据提取。BeautifulSoup 最有用的功能之一是能够在文档中查找特定的标签。在本博文中,我们将探讨如何使用 BeautifulSoup 查找给定标签的文本以及一些示例。

安装和语法

在使用 BeautifulSoup 之前,需要先安装它,因此请使用 Python 包管理器并在终端中运行以下命令。

pip install beautifulsoup4

安装 BeautifulSoup 后,我们可以使用以下代码将其导入到 Python 代码中:

from bs4 import BeautifulSoup

使用 BeautifulSoup 查找标签文本的语法如下:

soup.find('tag_name').text

算法

  • 将 HTML 文件或内容传递给 BeautifulSoup 类的函数以创建 BeautifulSoup 对象。

  • 利用 **find()** 函数查找要搜索的标签或标记。通过使用标记对象的 text 属性获取包含在标签内的文本。

  • 如果不存在 HTML 或 **XML** 标记,这将生成一个仅包含标签中文本的字符串。

  • 如果我们有兴趣这样做,我们可以通过使用循环重复遍历 **find_all()** 生成的标签列表来使用 text 属性获取每个标签中包含的文本。

示例 1

from bs4 import BeautifulSoup
html = '<html><body><h1>Hello, World!</h1></body></html>'
soup = BeautifulSoup(html, 'html.parser')
heading = soup.find('h1')
print(heading.text)

输出

Hello, World!

创建一个 HTML 字符串并将其与要使用的解析器一起传递给 BeautifulSoup 构造函数。使用 **find()** 方法查找 h1 标签并将其存储在 heading 变量中。最后,使用 heading 对象的 text 属性获取标签内的文本。

示例 2

from bs4 import BeautifulSoup
html = '<html><body><p>TutorialsPoint Web Scraping Example Text</p></body></html>'
soup = BeautifulSoup(html, 'html.parser')
paragraph = soup.find('p')
print(paragraph.text)

输出

TutorialsPoint Web Scraping Example Text

从包含段落标签和一些文本的 HTML 字符串开始,并使用 find() 方法找到段落标签并将其存储在 paragraph 变量中。将通过使用 paragraph 对象的 text 属性获取标签中的文本。

让我们来看一个更大的示例,了解如何使用 BeautifulSoup 查找多个标签的文本:

import requests
from bs4 import BeautifulSoup
url = 'https://www.pythonforbeginners.com/'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
headings = soup.find_all('h3')
for heading in headings:
   print(heading.text)

输出

Popular Python Tutorials
Categories
Loops
Regular Expressions
Python Games
Basics
Functions
Code Examples
Strings
Dictionaries
Python on the Web
Lists
Modules
Python Comments
Latest Content
Convert INI Files to JSON Format in Python
Convert XML to INI Format in Python
Pandas Insert Row into a DataFrame
Convert INI to XML Format in Python

在这种情况下,使用 requests 库向 url 变量中指示的网站发送 **GET** 请求,类似地,使用 BeautifulSoup 解析器技术解析响应的 HTML 数据。然后,使用 find all() 查找页面上的所有 h2 标签并将它们存储在 headings 变量中。最后,使用循环遍历每个标题并使用 text 属性输出其内容。

应用

BeautifulSoup 的应用领域包括在线抓取、数据提取和数据分析。它可以用来抓取新闻文章、社交媒体信息和各种其他来源以从网站获取数据,因此它的一个典型用例是 Web 自动化和测试。它也是开发人员的有用工具,因为它支持各种解析器,包括 **HTML** 和 **XML**。网页抓取和数据提取的用户友好语法和丰富的文档使初学者易于上手。

结论

BeautifulSoup 是一款功能强大的应用程序,可以简化网页抓取和数据提取。由于其简单的语法,可以快速访问 HTML 或 XML 文档中标签的文本。无论您是热衷于从网站抓取信息还是对其进行分析,BeautifulSoup 都是您工具箱中必不可少的一款工具。此外,它简化了遍历 HTML 树结构并从多个页面同时提取特定数据。由于其用户友好的界面和丰富的文档,BeautifulSoup 对于任何数据科学家或 Web 开发人员来说都是必不可少的。

更新于: 2023年8月21日

4K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.