<resultsummary>
    <resultticker category="executed">
        <count>12</count>
        <percentage>1.0</percentage>
        <id xlink:href="...">id_num</id>
        <id xlink:href="...">id_num</id>
    </resultticker>
    <resultticker category="done">
        <count>16</count>
        <percentage>0.6</percentage>
        <id xlink:href="...">id_num</id>
        <id xlink:href="...">id_num</id>
    </resultticker>
</resultsummary>


我正在使用BeatifulSoup4,并且使用命令soup.find("resultsummary")得到了上面的响应。
我想做的是,我想检索count标记中的resultticker并通过category属性对其进行分类。

所以,我想得到{ executed: 12, done: 16 }

我试图做soup.find("resultsummary").find('resultticker')['category']这样的事情,但是它只是给我属性executed的名称,而不是标签内的信息。

有什么帮助吗?提前致谢。

最佳答案

采用:

from bs4 import BeautifulSoup

html = """<div>
    <resultsummary>
    <resultticker category="executed">
        <count>12</count>
        <percentage>1.0</percentage>
        <id xlink:href="...">id_num</id>
        <id xlink:href="...">id_num</id>
    </resultticker>
    <resultticker category="done">
        <count>16</count>
        <percentage>0.6</percentage>
        <id xlink:href="...">id_num</id>
        <id xlink:href="...">id_num</id>
    </resultticker>
</resultsummary>
</div>"""

result = {}
soup = BeautifulSoup(html, "html.parser")
for resultticker in soup.find("resultsummary").find_all('resultticker'):  #iterate each resultticker
    result[resultticker['category']] = resultticker.count.text  #Key=category & Value=count
print(result)


输出:

{'executed': '12', 'done': '16'}

关于python - 使用BeautifulSoup根据属性检索信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59171839/

10-12 12:51
查看更多