一、方法描述
在 BeautifulSoup 库中,find()
方法会在当前 PageElement
的子元素中寻找第一个符合给定条件的元素并返回它。
二、语法
Soup.find(name, attrs, recursive, string, **kwargs)
三、参数
-
-
-
recursive
:如果为 True
,则执行递归搜索;否则,仅考虑直接子元素。
-
limit
:在找到指定数量的匹配后停止搜索。(注:实际使用中,limit
参数并非 find()
方法的一部分,而是 find_all()
方法的参数。这里可能是描述上的错误。)
-
四、返回值
find()
方法返回 Tag
对象或 NavigableString
对象。
五、示例
示例 1
让我们使用以下 HTML 脚本(作为 index.html
)进行演示:
<html>
<head>
<title>Yoagoa</title>
</head>
<body>
<form>
<input type = 'text' id = 'nm' name = 'name'>
<input type = 'text' id = 'age' name = 'age'>
<input type = 'text' id = 'marks' name = 'marks'>
</form>
</body>
</html>
下面的 Python 代码查找 id
为 nm
的元素:
from bs4 import BeautifulSoup
fp = open("index.html")
soup = BeautifulSoup(fp, 'html.parser')
obj = soup.find(id = 'nm')
print(obj)
输出:
<input id="nm" name="name" type="text"/>
示例 2
find()
方法返回解析文档中具有给定属性的第一个标签。
obj = soup.find(attrs={"name":'marks'})
输出:
<input id="marks" name="marks" type="text"/>
示例 3
如果 find()
没有找到任何元素,它将返回 None
。
obj = soup.find('dummy')
print(obj)
输出:
None