gpt4 book ai didi

python - 从html列表中提取信息到pandas df/list/dict (python 3.0)

转载 作者:行者123 更新时间:2023-12-01 09:28:43 26 4
gpt4 key购买 nike

我有一个网站的源代码,其中包含多个列表。现在我想将这些列表的信息提取为 python 中可用的格式。

例如,请参阅下面国家/地区列表的第一个列表条目:

<ul class='checklist__list'>

<li class=' checklist__item' id='checklist__item--country-111'>
<label class='checklist__label ripple-animation'>
<input class="checklist__input js-checklist__input idb-on-change" type="checkbox" id="111" name="country" value="111">
Germany
</input>
</label>
</li>

比如说,我现在对国家 ID(此处:111)和匹配的国家名称(此处:德国)感兴趣,并且希望在 Python 中以可用的格式,例如 pandas 数据框或字典。

有谁知道一个简单的方法吗?原始列表包含超过 100 个国家/地区。

非常感谢您的建议!

最佳答案

使用BeautifulSoup可以轻松解决这个问题。鉴于您在问题中发布的标记,此代码段应提取 idlabel:

from bs4 import BeautifulSoup as bs
html = """<ul class='checklist__list'>
<li class=' checklist__item' id='checklist__item--country-111'>
<label class='checklist__label ripple-animation'>
<input class="checklist__input js-checklist__input idb-on-change" type="checkbox" id="111" name="country" value="111">
Germany
</input>
</label>
</li>"""

soup = bs(html)
label = soup.find("label").text
id = soup.find("input").get("value")

您必须清理标签,因为输出中存在一些无关的空格和换行符,但您应该能够扩展此示例,但您需要进一步处理这些项目。

要处理具有与上述相同标记格式的多个列表项,您可以使用以下代码段:

lis = soup.find_all("li")  # This will return a list of all line items in the markup.
for li in lis:
li_label = li.find("label").text
li_id = li.find("input").get("id")
print(li_label, li_id)

关于python - 从html列表中提取信息到pandas df/list/dict (python 3.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50137612/

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