使用xpath和python获取文本值

使用xpath和python获取文本值,python,python-3.x,xpath,web-scraping,Python,Python 3.x,Xpath,Web Scraping,这是我写的代码。我正试着从你那里得到2758.82的字符串。但我得到的是 from lxml import html import requests url = 'https://www.bloomberg.com/quote/SPX:IND' page = requests.get(url) tree = html.fromstring(page.content) num = tree.xpath('//*[@id="root"]/div/div/section[2]/div[1]/div/s

这是我写的代码。我正试着从你那里得到2758.82的字符串。但我得到的是

from lxml import html
import requests
url = 'https://www.bloomberg.com/quote/SPX:IND'
page = requests.get(url)
tree = html.fromstring(page.content)
num = tree.xpath('//*[@id="root"]/div/div/section[2]/div[1]/div/section[1]/section/section[2]/section/div[1]/span[1]/text()')
print (num)

我从网站上复制了该部分的xpath。我在这里看到过类似的问题,但它们没有帮助。我的代码有问题吗?

这与xpath无关。这是关于页面是如何生成的

如果您检查
页面的内容。content
您将看到网页的源代码中没有
。 这是因为HTML内容主要是通过Javascript生成的

但这并不能阻止您,如果您打开原始html源代码(从
page.content
)并查找所需的值(2759.81),您将发现一个标记:
和另一个
2759.81
,您可以使用其中一个:

[]
给予


这与xpath无关。这是关于页面是如何生成的

如果您检查
页面的内容。content
您将看到网页的源代码中没有
。 这是因为HTML内容主要是通过Javascript生成的

但这并不能阻止您,如果您打开原始html源代码(从
page.content
)并查找所需的值(2759.81),您将发现一个标记:
和另一个
2759.81
,您可以使用其中一个:

[]
给予


谢谢您所说的“来自
页面内容”是什么意思?我应该在实际的页面源代码中查找
?因为当我打印
page.content
时,我得到一些未对齐的HTML文本,在那里我找不到
。。还有…当我尝试执行你建议的代码时…我得到
索引器:列表索引超出范围
谢谢!!。。您所说的“来自
页面内容”是什么意思?我应该在实际的页面源代码中查找
?因为当我打印
page.content
时,我得到一些未对齐的HTML文本,在那里我找不到
。。还有…当我尝试执行你建议的代码时…如果你仍然没有得到你建议解析的数字,我会得到
索引器:列表索引超出范围
,除了@Arount已经提出的建议之外,您还需要做一件事。您需要定义一个标题,如
requests.get(url,headers={“用户代理”:“Mozilla/5.0”})
以使您的刮板更像人。谢谢!!它现在正在工作。还有一件事..我如何访问
一些文本。
如果
也有一些属性呢?如果你想使用可见标记,请尝试使用selenium,它可以让你解析任何你想抓取的项目,考虑到它们的可见形式。如果你仍然没有得到你建议解析的数字,除了@Arount已经提出的建议之外,您还需要做一件事。您需要定义一个标题,如
requests.get(url,headers={“用户代理”:“Mozilla/5.0”})
以使您的刮板更像人。谢谢!!它现在正在工作。还有一件事..我如何访问
一些文本。
如果
也有一些属性呢?如果你想使用可见标记,请尝试使用selenium,它可以让你解析任何你想抓取的项目,考虑到它们的可见形式。
2759.82