在Python中用BeautifulSoup4存储标记中的数据

2024-05-19 20:26:59 发布

您现在位置:Python中文网/ 问答频道 /正文

使用BeautifulSoup4,我可以隔离: 你知道吗

<a href="#" data-nutrition="{
    &quot;serving-name&quot;:&quot;Milk, 2%&quot;,
    &quot;serving-size&quot;:&quot;16 FL OZ&quot;,
    &quot;calories&quot;:&quot;267&quot;}">
Milk, 2%
<i class="icon-leaf icon-hidden-text">Meatless</i>
</a>

通过运行: 你知道吗

for i in soup('a', attrs={'data-nutrition' : True}):
    sample = i
    break
print(sample)

我需要创建字典: 你知道吗

my_dict = {
    'serving-name': 'Milk, 2%',
    'serving-size': '16 FL OZ',
    'calories': '267'
}

如何在Python中使用BeautifulSoup4实现这一点


Tags: samplenamedatasizeclassiconhrefserving
1条回答
网友
1楼 · 发布于 2024-05-19 20:26:59

找到元素并使用^{}data-nutrition属性值加载到Python字典中:

import json
from bs4 import BeautifulSoup


data = """
<a href="#" data-nutrition="{
    &quot;serving-name&quot;:&quot;Milk, 2%&quot;,
    &quot;serving-size&quot;:&quot;16 FL OZ&quot;,
    &quot;calories&quot;:&quot;267&quot;}">
Milk, 2%
<i class="icon-leaf icon-hidden-text">Meatless</i>
</a>"""
soup = BeautifulSoup(data, "html.parser")

a = soup.select_one("a[data-nutrition]")
nutrition = json.loads(a["data-nutrition"])
print(nutrition)

印刷品:

{'serving-name': 'Milk, 2%', 'serving-size': '16 FL OZ', 'calories': '267'}

相关问题 更多 >