Я могу анализировать данные XML, используя теги, когда они открываются и закрываются.
Как <link>https://www.nba.com/bucks/</link>
в коде это становится,
link = item['link']
Как разобрать самозакрывающийся тег?
<enclosure url = "https://www.nba.com/bucks/sites/bucks/files/styles/media_thumbnail/public/middleton_3point_tw.jpg?itok=eiU05Btp" length = "37714" type = "image/jpeg" />
Кроме того, как мне получить только URL-адрес изображения и удалить все после ? в URL-адресе?





Используйте синтаксический анализатор XML, например https://docs.python.org/2/library/xml.etree.elementtree.html.
XPath определяют стандартные выражения для идентификации и извлечения элементов/тегов в XML-документе.
Используя XPaths с хорошим синтаксическим анализатором xml, вы можете легко найти любой элемент в документе. Например, xpath для поиска всех элементов ограждение в документе будет ".//корпус".
Если вы анализируете много XML-путей, о них стоит прочитать. Вот отличный стартовый туториал https://www.w3schools.com/xml/xpath_intro.asp
Например, вы можете сделать:
import xml.etree.ElementTree as ET
tree = ET.parse('your_xml_file.xml')
enclosures = tree.findall(".//enclosure") # Use the XPath to find all enclosure elements
for enclosure in enclosures:
print(enclosure.attrib)
{'url': 'https://www.nba.com/bucks/sites/bucks/files/styles/media_thumbnail/public/middleton_3point_tw.jpg?itok=eiU05Btp', 'length': '37714', 'type': 'image/jpeg'}
Затем вы можете просто разделить URL-адрес на ?, чтобы получить окончательный результат. Например
url = enclosure.attrib['url'].split('?')[0]
print(url)
https://www.nba.com/bucks/sites/bucks/files/styles/media_thumbnail/public/middleton_3point_tw.jpg
Как вы его "разбираете"? Я надеюсь, что не вручную (например, регулярное выражение)... Вы должны использовать синтаксический анализатор XML, если вы еще этого не сделали, тогда вообще не должно иметь значения, закрыты они или нет.