与beautifulsoup和python提取标签信息(Extracting tag informa

2019-09-17 02:51发布

说我有一些像XML

<item name=bread weight="5" edible="yes">
<body> some blah </body>
<item>

<item name=eggs weight="5" edible="yes">
<body> some blah </body>
<item>

<item name=meat weight="5" edible="yes">
<body> some blah </body>
<item>

我想每一个项目的名称存储在列表中使用美丽的汤

下面是迄今为止尝试:

names =list()

for c in soup.findAll("item"):
    #get name from the tag
        names.append(name i got from tag)

这种方法已经非常完美了标签之间提取文本。

我试图复制用于提取链接的方法<a href="www.blah.com">但它似乎并没有工作。

我将如何存储在列表中的名称信息? (其他列表包含正文所以关联的原因指标必须一致)。

非常感谢

Answer 1:

使用dict(item.attrs).get('name')获得的名称。

既然你是有问题<item>应该是关闭标签,但它是一个开放的标签,因此你获得6场比赛,而不是3.如果您有在文本任何控制,请使用结束标记来避免这种情况。

下面是完整的片段如预期运行:

names = list()

for item in soup.findAll('item'):
    name = dict(item.attrs).get('name')
    if name is not None:
        names.append(name)


文章来源: Extracting tag information with beautifulsoup and python