2

说我有一些像

<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">但它似乎不起作用。

如何将名称信息存储在列表中?(其他列表包含正文,因此出于关联性原因,索引必须一致)。

非常感谢

4

1 回答 1

2

用于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)
于 2012-05-09T18:07:09.783 回答