0
我從Arxiv中獲取xml,我想在使用lxml
庫讀取它之後解析所有Arxiv條目。這裏是我的代碼來抓取100篇文章的XML文件。使用lxml查找元素從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,我們沒有辦法在查找元素時提供{http://www.w3.org/2005/Atom}
,即tree.findall('entry')
或lxml
腳本具有與feedparser類似的某些功能。
謝謝har07!我以前不知道這個竅門。這工作完美。 – titipata