Как разобрать XML с веб-сайта с помощью python

Я пытаюсь разобрать XML из URL, но получаю ошибку FileNotFoundError

где я делаю неправильно?

Вот мой код:

import xml.etree.ElementTree as ET
import requests
url = "http://cs.stir.ac.uk/~soh/BD2spring2022/assignmentdata.php"
params = {'data':'spurpyr'}
response = requests.get (url, params)
xml_content = response.content

tree = ET.parse(xml_content)
root = tree.getroot()
print(root.tag)
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ET.parse анализирует из файла, вместо ET.parse попробуйте использовать ET.fromstring, и это, вероятно, поможет. Я не могу проверить ваш конкретный случай, так как указанный вами URL-адрес дает мне ошибку. Итак, попробуйте изменить свой код на этот

import xml.etree.ElementTree as ET
import requests
url = "http://cs.stir.ac.uk/~soh/BD2spring2022/assignmentdata.php"
params = {'data':'spurpyr'}
response = requests.get (url, params)
xml_content = response.content

root = ET.fromstring(xml_content)
print(root.tag)

Я получил эту ошибку AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 'getroot'

tony michael 09.04.2022 15:42

Да, мой плохой. я отредактирую свой ответ

Tecnical Compute 09.04.2022 15:45

Да, я отредактировал. Теперь это должно работать.

Tecnical Compute 09.04.2022 15:48

Как сохранить дочерние элементы в отдельные переменные, скажем, var_a и var_b, я запустил цикл for, чтобы получить их, как мне их сохранить for child in root: print(child.tag, child.attrib)

tony michael 09.04.2022 16:08

Я не уверен, что вы говорите, но я полагаю, что вам может понадобиться такой словарь dict = {} и в следующей строке вы можете сделать это for child in root: dict[child.tag] = child.attrib.

Tecnical Compute 09.04.2022 16:25

Я хочу сохранить их в отдельных переменных

tony michael 09.04.2022 16:30

Вы не можете сделать это, не без запрещенных методов. Один из таких запрещенных методов — использовать exec и сделать что-то подобное exec(f"{child.tag} = child.attrib"), но не делайте этого, потому что оно того не стоит.

Tecnical Compute 09.04.2022 16:33

Другие вопросы по теме