1

BeautifulSoupのメソッドfindAll()は、XML のすべての要素を返すわけではありません。以下のコードを見て URL を開くと、XML に 10 個のPubmedArticleノードがあることがわかります。ただし、findAll メソッドでは 6 つしか見つかりません。出力には 10 ではなく 6 * しかありません。何が間違っていますか?

import urllib2
from bs4 import BeautifulSoup

URL = 'http://www.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&rettype=abstract&id=23858559,23858558,23858557,23858521,23858508,23858506,23858494,23858473,23858461,23858404'
data = urllib2.urlopen(URL).read()

soup = BeautifulSoup(data)

for x in soup.findAll('pubmedarticle'):
    print '*'
4

2 に答える 2

0

編集:「findAll」が現在のノードに相対的であることを発見しました。スープでルートノードを設定できます。

提供された xml のエンティティは「PubMedArticle」という名前になっているため、次のことを試してください。

for x in soup.pubmedarticleset.findAll('pubmedarticle'):
    print '*'
于 2013-07-17T18:43:57.873 に答える