Python BeautifulSoup find() 方法
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”。
相关文章