📅  最后修改于: 2020-11-09 14:28:43             🧑  作者: Mango
在多种情况下,您想使用Beautifulsoup4提取特定类型的信息(仅标记)。 Beautifulsoup中的SoupStrainer类允许您仅解析传入文档的特定部分。
一种方法是创建一个SoupStrainer并将其作为parse_only参数传递给Beautifulsoup4构造函数。
SoupStrainer告诉BeautifulSoup提取了哪些部分,而解析树仅包含这些元素。如果将所需信息缩小到HTML的特定部分,则可以加快搜索结果的速度。
product = SoupStrainer('div',{'id': 'products_list'})
soup = BeautifulSoup(html,parse_only=product)
上面的代码行将仅解析产品站点中的标题,该标题可能位于标签字段中。
类似地,像上面一样,我们可以使用其他soupStrainer对象来解析HTML标记中的特定信息。以下是一些示例-
from bs4 import BeautifulSoup, SoupStrainer
#Only "a" tags
only_a_tags = SoupStrainer("a")
#Will parse only the below mentioned "ids".
parse_only = SoupStrainer(id=["first", "third", "my_unique_id"])
soup = BeautifulSoup(my_document, "html.parser", parse_only=parse_only)
#parse only where string length is less than 10
def is_short_string(string):
return len(string) < 10
only_short_strings =SoupStrainer(string=is_short_string)