我正在使用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)
鉴于该网页中的内容,您的XPath对我来说是正确的。然而,众所周知,lxml
的XPath解析器通常会错误地识别具有索引的元素。您可以按属性搜索:
r_name = parser.xpath('//p[@class="article__summary"]/text()')