4
4

2 に答える 2

6

問題は、角かっこがタグの属性、つまりlatとを取得することですlon。ただし、名前は別のタグの属性です。次のようなものを試してください。

soup = BeautifulSoup(results)
takeaways = soup.findAll('node')

for eachtakeaway in takeaways:
    another_tag = eachtakeaway('tag')
    for tag_attrs in another_tag:
        if str(tag_attrs['k']) == 'cuisine':
            print str(tag_attrs['v'])

これにより、料理の価値が返されます。同じ概念がの取得にも当てはまりますname

*未テスト

于 2012-11-15T14:46:45.450 に答える
2

要素には属性<node>がありません。nameタグの子タグは次のことを行います。

for eachtakeaway in takeaways:
    longitude = str(eachtakeaway['lon'])
    lattitude = str(eachtakeaway['lat'])
    nametag = eachtakeaway.find('tag', k='name')
    name = str(nametag['v']) if nametag is not None else ''

デモンストレーション:

>>> takeaways = soup.findAll('node')
>>> for eachtakeaway in takeaways:
...     nametag = eachtakeaway.find('tag', k='name')
...     print str(nametag['v']) if nametag is not None else ''
... 
Potato Valley Cafe
McDonald's
Quizno's
于 2012-11-15T14:45:12.650 に答える