Я извлекаю xml из Arxiv, и я хочу проанализировать все записи Arxiv после его чтения с помощью библиотеки lxml
. Вот мой код для захвата XML-файла из 100 статей.Использовать элемент поиска lxml для анализа Arxiv XML из API
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