Наткнулся на мнение, что чистый lxml лучше чем bs4 + lxml. Стало интересно как работать с чистым xml файлом в первом и втором случае. Набросал 2 функции, которые делают одно и то же, но в случае с lxml у меня есть подозрение, что я делаю что-то не так. Гуру питона и парсинга xml, объясните, где я неправ?
import requests
from lxml import etree
from bs4 import BeautifulSoup
url = 'https://www.coursera.org/sitemap~www~courses.xml'
response = requests.get(url)
def lxml_method(xml):
root = etree.fromstring(xml)
ns = '{' + root.nsmap[None] + '}'
elements = root.findall('.//' + ns + 'loc')
links = [link.text for link in elements]
return links
def bs4_method(xml):
soup = BeautifulSoup(response.content, 'lxml')
elements = soup.findAll('loc')
links = [link.text for link in elements]
return links
Перемещено beastie из general