Python, парсинг результата от запросов в xml - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь проанализировать результат из запросов в XML с помощью BeautifulSoup.

Однако возвращается сообщение об ошибке: «Ошибка типа: у объекта типа« Ответ »нет len ()»

Вот мой код:

r = requests.get(url, proxies=proxies, timeout=10)
result = BeautifulSoup(r,'html.parser')

Ответы [ 4 ]

0 голосов
/ 30 мая 2018

В BeautifulSoup, html.parser используется для анализа содержимого HTML, если вы хотите проанализировать содержимое XML, используя синтаксический анализатор XML lxml, например:

result = BeautifulSoup(r,'lxml-xml')   # method 1
result = BeautifulSoup(r,'xml')        # method 2

Прежде чем использовать их, вы должны убедиться, что выустановили парсер lxml.с помощью pip его легко установить.

pip install lxml

0 голосов
/ 30 мая 2018

Согласно предыдущему ответу на аналогичный вопрос:

Вы получаете response.content.Но он возвращает тело ответа в байтах ( docs ).Но вы должны передать str конструктору BeautifulSoup ( docs ).Поэтому вам нужно использовать response.text вместо получения контента.

0 голосов
/ 30 мая 2018

Замените r на r.text в функции BeautifulSoup:

r = requests.get(url, proxies=proxies, timeout=10)

result = BeautifulSoup(r.text,'html.parser')

Надеюсь, это поможет.Удачного кодирования:)

0 голосов
/ 30 мая 2018

Передайте содержимое ответа в BeautifulSoup.

Пример:

result = BeautifulSoup(r.text,'html.parser')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...