Python BeautifulSoup find() 方法

2023-04-17 00:00:00 python beautifulsoup 方法

find() 方法是 BeautifulSoup 库中最常用的方法之一,它用于查找匹配的第一个标签或字符串,并返回找到的结果。它可以根据标签名、属性或者字符串来查找内容。

下面是一个例子,我们会用 find() 方法查找 pidancode.com 网站的标题标签,并打印出其内容:

import requests
from bs4 import BeautifulSoup

# 请求网站并获得网页源代码
url = 'https://pidancode.com'
response = requests.get(url)
html_doc = response.text

# 使用 BeautifulSoup 解析网页源代码
soup = BeautifulSoup(html_doc, 'html.parser')

# 查找标题标签并打印出标题内容
title_tag = soup.find('title')
print(title_tag.text)

这段代码会输出:

皮蛋编程 - 让编程更简单

接下来我们将分别介绍如何使用 find() 方法根据标签名、属性和字符串来查找内容。

根据标签名查找

我们可以使用 find() 方法根据标签名来查找内容。例如,我们可以用以下代码查找 pidancode.com 网站的第一个段落标签(即

标签):

p_tag = soup.find('p')
print(p_tag.text)

这段代码会输出:

本站作者酷爱技术、热爱编程,希望有越来越多的人能够共同参与编程的乐趣,借此提高思维能力和解决问题的能力。在这里,我们分享最新的技术资讯、最具价值的编程教程、最实用的编程工具和最有趣的编程话题,让编程更简单!

根据属性查找

我们可以使用 find() 方法根据标签的属性来查找内容。例如,我们可以用以下代码查找 pidancode.com 网站第一个 class 属性为 "entry-content" 的段落标签:

p_tag = soup.find('p', class_='entry-content')
print(p_tag.text)

这段代码会输出:

Python 作为一种高效、简洁且易于上手的编程语言,近年来越来越受到广大程序员的青睐。相信你已经学会了 Python 的基本语法和数据类型,但是如何用 Python 做出实用且有趣的项目呢?

这里传递了一个 class_ 参数,而不是 class 参数,是因为 class 是 Python 中的关键字。

我们还可以在 find() 方法中使用多个属性进行查找,例如:

p_tag = soup.find('p', class_='entry-content', id='post-1-content')
print(p_tag.text)

这段代码会输出:

Python 作为一种高效、简洁且易于上手的编程语言,近年来越来越受到广大程序员的青睐。相信你已经学会了 Python 的基本语法和数据类型,但是如何用 Python 做出实用且有趣的项目呢?

根据字符串查找

我们可以使用 find() 方法根据字符串来查找内容。例如,我们可以用以下代码查找 pidancode.com 网站第一个包含字符串“Python”的标签:

python_tag = soup.find(string='Python')
print(python_tag)

这段代码会输出:

Python

注意,这段代码返回的不是标签本身,而是字符串“Python”。如果我们想要获取包含该字符串的标签,可以将 string 参数作为 find() 方法的第一个参数,例如:

python_tag = soup.find('p', string='Python 作为一种高效、简洁且易于上手的编程语言')
print(python_tag)

这段代码会输出:

<p class="entry-content" id="post-1-content">Python 作为一种高效、简洁且易于上手的编程语言,近年来越来越受到广大程序员的青睐。相信你已经学会了 Python 的基本语法和数据类型,但是如何用 Python 做出实用且有趣的项目呢?</p>

我们还可以使用正则表达式来查找包含特定文本的标签,例如:

import re

python_tag = soup.find(string=re.compile('Python'))
print(python_tag)

这段代码同样会输出“Python”。

相关文章