XML:返回文本值?

问题描述 投票:1回答:1

我正在使用XML来返回以下值的文本值。我正在使用绝对路径映射到文本值的位置。我相信道路是准确的。但是,当我尝试返回值时,我没有返回值。有没有人看到代码中的错误可能会阻止值返回文本值?

import requests
from lxml import html


headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
url = 'https://www.marketwatch.com'

response = requests.get(url, headers=headers, verify=False).text

parser = html.fromstring(response)


r_name = parser.xpath('/html/body/div[2]/div/div[1]/div/div/ul[2]/li[1]/div[3]/div/p/text()')
print(r_name)
python xml python-requests lxml
1个回答
0
投票

鉴于该网页中的内容,您的XPath对我来说是正确的。然而,众所周知,lxml的XPath解析器通常会错误地识别具有索引的元素。您可以按属性搜索:

r_name = parser.xpath('//p[@class="article__summary"]/text()')
© www.soinside.com 2019 - 2024. All rights reserved.