我如何使用汤构成包含破折号的属性



我正在使用django和python 3.7。我想使用Beautifulsoup和Soupstrainer来查找文档中的特定元素。但是,如果属性包含破折号,该怎么办?我想这样做

my_strainer = SoupStrainer('a', data-id="aaa")

,但这导致错误

Can't assign to function call

抱怨"数据ID"属性。如果我将" Data-ID"更改为" ID",那么一切都会运行,但是我不会得到我想要的结果。

您可以像

一样传递它
my_strainer= SoupStrainer('a',{'data-id':'aaa'})

data-*和其他此类属性应如文档中所述传递。

样本

html="""
<html class="test">
<a data-id='aaa'>yes</a>
<a>No</a>
<span>no</span>
</html>
"""
from bs4 import BeautifulSoup
from bs4 import SoupStrainer
my_strainer= SoupStrainer('a',{'data-id':'aaa'})
soup=BeautifulSoup(html, "lxml", parse_only=my_strainer)
print(soup)

输出

<a data-id="aaa">yes</a>

最新更新