我想通过 BeautifulSoup 从内容中获取所有 data-js 属性值。

输入:

<p data-js="1, 2, 3">some text..</p><p data-js="5">some 1 text</p><p data-js="4"> some 2 text. </p>

输出:
['1, 2, 3', '5', '4']

我已经用 lxml 完成了:
>>> content = """<p data-js="1, 2, 3">some text..</p><p data-js="5">some 1 text</p><p data-js="4"> some 2 text. </p>"""
>>> import lxml.html as PARSER
>>> root = PARSER.fromstring(content)
>>> root.xpath("//*/@data-js")
['1, 2, 3', '5', '4']

我希望通过 BeautifulSoup 获得上述结果。

最佳答案

这个想法是找到所有具有 data-js attributes 的元素并将它们收集在一个列表中:

from bs4 import BeautifulSoup


data = """
<p data-js="1, 2, 3">some text..</p><p data-js="5">some 1 text</p><p data-js="4"> some 2 text. </p>
"""

soup = BeautifulSoup(data)
print [elm['data-js'] for elm in soup.find_all(attrs={"data-js": True})]

打印 ['1, 2, 3', '5', '4']

关于python - 通过 BeautifulSoup 获取属性值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30804080/

10-12 00:31
查看更多