【发布时间】:2017-11-15 04:13:48
【问题描述】:
我正在尝试解析来自雅虎财务页面的值。我使用 Chrome 来检查感兴趣的元素(股票的当前价格)并在这个简单的脚本中使用 xpath:
from lxml import html
import requests
page = requests.get('https://finance.yahoo.com/quote/VNQ?p=VNQ')
tree = html.fromstring(page.content)
print tree.xpath('//*[@id="quote-header-info"]/div[3]/div[1]/div/span[1]/text()')
但是,我得到的是来自下一个 span 标签的文本值。我试图改变 Chrome 给我的 xpath 以获取以前的文本值,但没有成功。谁能告诉我哪里出错了?
【问题讨论】:
-
你确定所有这些硬编码的索引都是正确的吗?
-
发布预期结果
-
它们是从 Chrome 复制路径中剪切/粘贴的,并突出显示所需的文本。我不明白的两件事是为什么它给出了下一个跨度标签文本的 xpath 而不是突出显示的文本。其次,假设 Chrome 提供了不正确的 xpath,我该如何更改它以获得正确的 xpath(因为它非常接近)。
-
预期结果是当前价格,当然在市场时段内会不断变化,但如果您转到脚本中的页面,您会看到 36px 类型的数字。
-
如果有人能告诉我一个更好的方法来解析这个网页以获得这个(或另一个值),请告诉我正确的技术。