📅  最后修改于: 2023-12-03 14:47:31.231000             🧑  作者: Mango
soup.find
方法介绍soup.find
是BeautifulSoup
库中的一个非常常用的方法,用于在HTML文档中查找第一个符合条件的元素,并返回该元素的Tag
对象或None
。它的使用非常简单,只需指定要查找的元素标签名、属性和属性值等条件即可。
soup.find(name=None, attrs={}, recursive=True, text=None, **kwargs)
name
:要查找的元素标签名,可以是字符串或正则表达式对象,默认值为None
,表示不限制标签名。attrs
:要查找的元素属性和属性值的字典,例如{'class': 'test', 'id': 'testid'}
,默认值为空字典。recursive
:是否在所有子孙节点中递归查找,默认值为True
。text
:要查找的元素文本内容,可以是字符串或正则表达式对象,默认值为None
,表示不限制文本内容。**kwargs
:用于限制属性和属性值的关键字参数,例如class_='test', id='testid'
。import requests
from bs4 import BeautifulSoup
# 获取网页内容
url = 'https://www.python.org/'
resp = requests.get(url)
html = resp.text
# 解析HTML文档
soup = BeautifulSoup(html, 'html.parser')
# 查找第一个<a>标签
a = soup.find('a')
print(a)
# 查找第一个<a>标签,并限定class为'button'
a = soup.find('a', class_='button')
print(a)
# 查找第一个<div>标签,其属性id为'app'
div = soup.find('div', id='app')
print(div)
# 查找第一个<strong>标签,并限制文本内容为'Python'
strong = soup.find('strong', text='Python')
print(strong)
<a href="#content" title="Skip to content">Skip to content</a>
<a class="button" href="/downloads/">Downloads</a>
<div class="shrubbery">
<p>Knight: Ni!</p>
</div>
<strong class="widget-title">Python Brochure</strong>
find
方法只会返回第一个符合条件的元素,如果需要查找所有符合条件的元素,则需要使用soup.find_all
方法。class_='test'
,而不是class='test'
。re.compile
函数先将字符串编译成正则表达式对象,例如re.compile(r'^b')
。