2

私が次のような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">が、機能しないようです。

名前情報をリストに保存するにはどうすればよいですか?(他のリストには本文が含まれているため、関連性の理由から、インデックスは一貫している必要があります)。

どうもありがとう

4

1 に答える 1

2

名前を取得するために使用dict(item.attrs).get('name')します。

<item>は終了タグであるはずですが、開始タグであるため、3 つではなく 6 つの一致が得られるため、問題が発生しています。テキストを制御できる場合は、これを回避するために終了タグを使用してください。

意図したとおりに機能する完全なスニペットを次に示します。

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 に答える