使用requests爬取的网页,保存后可以搜到我要的元素,但是使用lxml.etree.HTML()解析后定位不到该元素,通过定位它父级元素发现,父级下面的子元素丢掉了一部分,再通过lxml.etree.tostring()将解析后的网页保存下来,也搜不到该元素,可以确定是lxml.etree.HTML()解析丢失内容,通过lxml.parse()解析本地保存的网页也无法找到该元素,仍然丢失内容,lxml.etree解析存在问题,请问怎么解决?
(请不要定位head里面的描述,必须定位红框中的位置,解决lxml.etree.HTML()解析丢失内容的问题)
import requests
from lxml import etree
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.58',
'referer':'https://www.ad.siemens.com.cn',
}
def parse_detail():
url = 'https://www.ad.siemens.com.cn/service/answer/solve_286822_1077.html'
res = requests.get(url,headers=headers)
with open('detail.html','w',encoding='utf-8') as f:
f.write(res.text)
html = etree.HTML(res.content)
content = html.xpath('//*[@class="extra-wide-answer"]')[0]
title = ''.join(content.xpath('//div[@class="top-title"]/div[1]/h1/text()')).strip() # 问题标题
description = html.xpath('/html/body/div[4]/div[2]/div[3]/div[8]/p[4]/text()') # 问题描述