python l xml ошибка, может быть, l xml не может правильно проанализировать html от xpath.it кажется, что документ был обрезан так, что неправильно анализируется - PullRequest
0 голосов
/ 20 января 2020

есть элемент, выражение xpath которого равно "// * [@ id = 'productDetails_detailBullets_sections1'] в html, но я не могу вызвать xpath для получения объекта об элементе. Как получить правильный объект? Потому что xml вызовите libxml2, который является c библиотекой, поэтому я редактирую c код. Я нахожу тот же вопрос, что оба они не могут разобрать html.

import requests
from lxml import html
from lxml import etree
myheaders = \
            {
                "Host": "www.amazon.com",
                'Connection': 'keep-alive',
                'Cache-Control': 'max-age=0',
                'Accept': 'text/html, */*; q=0.01',
                'X-Requested-With': 'XMLHttpRequest',
                'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36',
                'DNT': '1',
                'Referer': 'www.amazon.com',
                'Accept-Encoding': 'gzip, deflate, sdch',
                'Accept-Language': 'zh-CN,zh;q=0.8,ja;q=0.6'
            }
product_link="https://www.amazon.com/12x42-Roof-Prism-Binoculars-Adults/dp/B07GF4JCDY/ref=zg_bs_502394_52/136-5024359-5179066?_encoding=UTF8&psc=1&refRID=SM787G6VW6RACAYJFC4G&language=en"

response = requests.get(product_link, headers=myheaders)
tree = etree.HTML(response.text)
tree.xpath("//*[@id='productDetails_detailBullets_sections1']")#receive empty list
...