Не удается извлечь результат, как ожидалось, при использовании request_html - PullRequest
0 голосов
/ 08 октября 2018

Я не могу извлечь правильный результат с помощью request_html:

>>> from requests_html import HTMLSession
>>> session = HTMLSession()
>>> r = session.get('https://www.amazon.com/dp/B07569DYGN')
>>> r.html.find("#productDetails_detailBullets_sections1")
[]

Я могу найти id 'productDetails_detailBullets_sections1' в исходном содержимом:

>>> """<table id="productDetails_detailBullets_sections1" class="a-keyvalue prodDetTable" role="presentation">""" in r.text
True

На самом делепроблема также существует в PyQuery.

Почему requests_html не может найти этот элемент?

1 Ответ

0 голосов
/ 08 октября 2018

Я искал #comparison_price_row, который все еще что-то находит.Следующий идентификатор в источнике - comparison_shipping_info_row, но поиск #comparison_shipping_info_row возвращает пустой массив.Два элемента находятся на одном уровне (один и тот же родитель).Я изучил все источники между ними, но не нашел никаких проблем.

Сначала.

Затем я увидел, что где-то между ними есть байт NUL, что, вероятно, делает библиотеку запутывающейся.

После удаления байтов NUL из ввода,искомый элемент может быть найден:

r2 = requests_html.HTML(html=r.text.replace('\0', ''))
r2.find('#productDetails_detailBullets_sections1')

[<Element 'table' role='presentation' class=('a-keyvalue', 'prodDetTable') id='productDetails_detailBullets_sections1'>]
...