Beautiful Soup 简明教程

Beautiful Soup - find() Method

Method Description

Beautiful Soup 中的 find() 方法在该 PageElement 的子元素中查找与给定标准匹配的第一个 Element 并返回它。

Syntax

Soup.find(name, attrs, recursive, string, **kwargs)

Parameters

name − 对标记名称的筛选。

attrs − 对属性值进行筛选的字典。

recursive − 如果为 True,则 find() 将执行递归搜索。否则,仅考虑直接子元素。

limit − 在找到指定数量的出现次数后停止寻找。

kwargs − 对属性值进行筛选的字典。

Return value

find() 方法返回 Tag 对象或 NavigableString 对象

Example 1

让我们为了这个目的使用以下 HTML 脚本(作为 index.html):

<html>
   <head>
      <title>TutorialsPoint</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)

Output

<input id="nm" name="name" type="text"/>

Example 2

find() 方法返回已解析文档中具有给定属性的第一个标签。

obj = soup.find(attrs={"name":'marks'})

Output

<input id="marks" name="marks" type="text"/>

Example 3

如果 find() 什么也找不到,则返回 None

obj = soup.find('dummy')
print (obj)

Output

None