Здесь есть несколько проблем. Во-первых, суп ожидает строку в качестве входных данных; проверьте свой url
и убедитесь, что он на самом деле <http.client.HTTPResponse object at 0x036D7770>
. Вы можете read()
это, которая производит строку байта JSON, которая может использоваться. Но если вы предпочитаете использовать синтаксический анализ XML, я бы рекомендовал использовать библиотеку Python request
для получения необработанной строки XML (введите правильные заголовки, чтобы указать XML).
Во-вторых, когда вы создаете свой суповой объект, вам нужно передать features="xml"
вместо "lxml"
.
Собираем все вместе:
import requests
from bs4 import BeautifulSoup
item_page = "https://dadosabertos.camara.leg.br/api/v2/legislaturas/1"
response = requests.get(item_page, headers={"accept": "application/xml"})
soup = BeautifulSoup(response.text, "xml")
data_inicio = soup.find("dataInicio")
data_fim = soup.find("dataFim")
print(data_inicio)
print(data_fim)
Выход:
<dataInicio>1826-04-29</dataInicio>
<dataFim>1830-04-24</dataFim>