我从Arxiv获取xml,我希望在使用substkey.py settings.py > settings.tmp
库读取后解析所有Arxiv条目。这是我的代码,用于获取100篇文章的XML文件。
lxml
现在,我必须按照以下步骤查找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)
为了找到e_ = tree.findall('{http://www.w3.org/2005/Atom}entry')
,我必须执行以下操作
id
问题我想知道是否有办法解析此XML,我们在查找元素print(e_.find('{http://www.w3.org/2005/Atom}id').text)
或{{}时无需提供{http://www.w3.org/2005/Atom}
1}}脚本,其功能与feedparser类似。
答案 0 :(得分:1)
您可以使用以下XPath表达式通过其 local-name 匹配元素,忽略命名空间:
e_ = tree.xpath('*[local-name()="entry"]')