У меня есть карта сайта, как это: http://www.site.co.uk/sitemap.xml, которое структурировано так:Анализировать XML Sitemap с Python
<sitemapindex>
<sitemap>
<loc>
http://www.site.co.uk/drag_it/dragitsitemap_static_0.xml
</loc>
<lastmod>2015-07-07</lastmod>
</sitemap>
<sitemap>
<loc>
http://www.site.co.uk/drag_it/dragitsitemap_alpha_0.xml
</loc>
<lastmod>2015-07-07</lastmod>
</sitemap>
...
И я хочу, чтобы извлечь из него данные. Прежде всего, мне нужно подсчитать, сколько <sitemap>
находится в xml, а затем для каждого из них, извлечь данные <loc>
и <lastmod>
. Есть ли простой способ сделать это в Python?
Я видел другие вопросы, подобные этому, но все они извлекают, например, каждый элемент <loc>
внутри xml, мне нужно извлекать данные отдельно от каждого элемента.
Я пытался использовать lxml
с этим кодом:
import urllib2
from lxml import etree
u = urllib2.urlopen('http://www.site.co.uk/sitemap.xml')
doc = etree.parse(u)
element_list = doc.findall('sitemap')
for element in element_list:
url = store.findtext('loc')
print url
но element_list
пуста.
Используйте 'lxml' библиотеку. –
Хороший вопрос в StackOverflow показывает, что вы уже пробовали, и как он терпит неудачу. (Я полностью согласен с Анандом в том, что 'lxml' является правильным инструментом для работы, если вы попробуете его и у вас возникнут проблемы *, то * у вас возникнет вопрос задать здесь вопрос). –
Можно также использовать https://docs.python.org/2/library/xml.etree.elementtree.html, нет? – tandy