Beautiful Soup 简明教程
Beautiful Soup - find_all_next() Method
Method Description
Beautiful Soup 中的 find_all_next() 方法找到与给定条件匹配并出现在文档中的此元素后面的所有 PageElements。此方法返回标记或 NavigableString 对象,其方法的参数与 find_all() 中的参数完全相同。
Parameters
-
name − 对标记名称的筛选。
-
attrs − 对属性值进行筛选的字典。
-
recursive − 如果为 True,则 find() 将执行递归搜索。否则,仅考虑直接子元素。
-
limit − 在找到指定数量的出现次数后停止寻找。
-
kwargs − 对属性值进行筛选的字典。
Example 1
使用 index.html 作为此示例的 HTML 文档,我们首先定位 <form> 标签并使用 find_all_next() 方法收集它之后的所有元素。
from bs4 import BeautifulSoup
fp = open("index.html")
soup = BeautifulSoup(fp, 'html.parser')
tag = soup.form
tags = tag.find_all_next()
print (tags)
Output
[<input id="nm" name="name" type="text"/>, <input id="age" name="age" type="text"/>, <input id="marks" name="marks" type="text"/>]
Example 2
在此,我们对 find_all_next() 方法应用筛选器,以收集 <form> 之后的、ID 为 nm 或 age 的所有标签。
from bs4 import BeautifulSoup
fp = open("index.html")
soup = BeautifulSoup(fp, 'html.parser')
tag = soup.form
tags = tag.find_all_next(id=['nm', 'age'])
print (tags)