Буду очень признателен за любую помощь. Я создаю парсер для веб-сайта. Я пытаюсь определить элемент, используя пакет l xml, элемент имеет довольно простой относительный xpath: '//div[@id="productDescription"]'
. Когда я вручную захожу на веб-страницу, делаю «просмотр исходной страницы» и копирую строку html в локальный файл html, все работает отлично. Однако, если я загружаю файл автоматически:
headers = {"user-Agent": "MY SCRAPER USER-AGENT", "Accept-Encoding":"gzip, deflate", "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "DNT": "1","Connection": "close", "Upgrade-Insecure-Requests": "1"}
product_HTML_bytes = requests.get(product_link, headers=headers, proxies={'http': "***:***"}).content
product_HTML_str = product_HTML_bytes.decode()
main_data = html.fromstring(product_HTML_str)
product_description_tags = main_data.xpath('//div[@id="productDescription"]')
...
, я ничего не получаю (и данные в файле существуют). Я также попытался сначала очистить образец страниц, используя тот же request.get с теми же заголовками и т. Д., Сохранив файлы локально, а затем очистив лишние пробелы и сделав отступ в документе вручную с помощью этого html форматера: https://www.freeformatter.com/html-formatter.html и затем бум, это снова работает. Однако я не мог понять, какие именно изменения в файлах, но я был почти уверен, что дополнительные пробелы и отступы не должны иметь значения.
Что мне здесь не хватает?
Заранее спасибо
Редактировать:
URL: https://www.amazon.com/Samsung-MicroSDXC-Adapter-MB-ME128GA-AM/dp/B06XWZWYVP потому что вставить его здесь невозможно, так как файл превышает ограничение длины, я загрузил их в Интернете.
Не работает HTML: https://easyupload.io/231pdd
Отступ, чистая и отформатированная HTML страница: https://easyupload.io/a9oiyh