0
Arxivからxmlを取得していて、すべてのArxivエントリを、lxml
ライブラリを使用して読み込んだ後に解析したいとします。ここでは、100の記事のXMLファイルを取得するための私のコードです。lxml find要素を使用してAPIからArxiv XMLを解析する
import urllib
from lxml import etree
start_index = 0
results_per_iteration = 100
base_url = 'http://export.arxiv.org/api/query?'
search_query = 'cat:cs.CV+OR+cat:cs.LG+OR+cat:cs.CL+OR+cat:cs.NE+OR+cat:stat.ML'
query = 'search_query=%s&sortBy=lastUpdatedDate&start=%i&max_results=%i'\
% (search_query, start_index, start_index + results_per_iteration)
response = urllib.request.urlopen(base_url + query).read() # python 3.x
# response = urllib.urlopen(base_url + query).read() # python 2.x
tree = etree.fromstring(response)
ここでは、xmlからすべてのエントリを見つけるために次のようにしなければなりません。
e_ = tree.findall('{http://www.w3.org/2005/Atom}entry')
そしてid
を見つけるために、私は次のよう
print(e_.find('{http://www.w3.org/2005/Atom}id').text)
質問を行う必要があり、私たちは持っていない、このXMLを解析する方法があるかどうかを知りたいれますfeedparserと同様の機能を持つ要素、すなわちtree.findall('entry')
またはlxml
スクリプトを検索するときに{http://www.w3.org/2005/Atom}
を指定します。
おかげでhar07!私は前にこのトリックを知らなかった。これは完璧に動作します。 – titipata