我正在使用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)
答案 0 :(得分:0)
鉴于该网页中的内容,您的XPath对我而言似乎正确。但是,lxml
的XPath解析器通常无法确定带有索引的元素。您可以改为按属性搜索:
r_name = parser.xpath('//p[@class="article__summary"]/text()')