gpt4 book ai didi

python - SoupStrainer 可以有两个参数吗?

转载 作者:太空狗 更新时间:2023-10-30 03:00:52 24 4
gpt4 key购买 nike

好吧,这开始是一个问题,但在中途我想通了。我在 stackoverflow 或 Google 上找不到这样的问题,所以无论如何我都会发布它以帮助任何偶然发现它的人。

我想使用 BeautifulSoup 的 SoupStrainer 来解析 html 文档中的两个标签而不是一个标签。

我知道我可以做到:

soup = BeautifulSoup(content.text, 'lxml', parse_only=SoupStrainer('p'))  

这会得到 <p>标签。我也想得到 <h3>标签。所以我尝试了这个:

soup = BeautifulSoup(content.text, 'lxml', parse_only=SoupStrainer('h3', 'p'))

但这行不通,因为 SoupStrainer 只接受一个参数。

答案如下。

最佳答案

要让 SoupStrainer 解析多个标签,您需要将它们放在一个列表中。像这样:

soup = BeautifulSoup(content.text, 'lxml', parse_only=SoupStrainer(['h3', 'p']))

这会解析两个 <h3><p> content.text 中的标签,即使它们是 sibling (即一个标签不在另一个标签内)。

您也可以使用两个以上的标签来执行此操作,只要您将它们作为一个列表传递给 SoupStrainer。

一个标签:

soup = BeautifulSoup(content.text, 'lxml', parse_only=SoupStrainer('p'))

多个标签:

soup = BeautifulSoup(content.text, 'lxml', parse_only=SoupStrainer(['h1', 'h3', 'p', 'h4']))

关于python - SoupStrainer 可以有两个参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com