Python XPath获取空列表

Python XPath获取空列表,python,xpath,empty-list,javascript,puppeteer,nodejs,Python,Xpath,Empty List,Javascript,Puppeteer,Nodejs,我正试图从这个网站上获取这个红色圆圈的数字: 我有这个代码来获取它,但我得到一个空列表: linktc='https://www.banxico.org.mx/' pagetc=requests.get(linktc) tree=html.fromstring(pagetc.content) tipocambio=tree.xpath('//div[@id="vFIX"]//span[@class="valor"]//text()') print(&qu

我正试图从这个网站上获取这个红色圆圈的数字:

我有这个代码来获取它,但我得到一个空列表:

linktc='https://www.banxico.org.mx/'
pagetc=requests.get(linktc)
tree=html.fromstring(pagetc.content)
tipocambio=tree.xpath('//div[@id="vFIX"]//span[@class="valor"]//text()')
print("TC: ",tipocambio)

有人知道问题出在哪里吗?

这里的问题是,您需要一个功能强大的库。您想要的值是用JS生成的

您可以改为通过以下方式使用:

输出
或者也检查一下这里的问题是,您需要一个功能强大的库。您想要的值是用JS生成的

您可以改为通过以下方式使用:

输出
或者也可以选择使用Javascript来显示值。你可以用硒来获得它。或者直接从后台加载的JSON中检索数据:

import urllib.request, json 
with urllib.request.urlopen("https://www.banxico.org.mx/canales/singleFix.json") as url:
    data = json.loads(url.read().decode())
    print(data['valor'])
产出:22.6662

备选方案:从其他地方获取值

from lxml import html
import requests

url = 'https://www.banxico.org.mx/SieInternet/consultarDirectorioInternetAction.do?sector=6&accion=consultarCuadro&idCuadro=CF102&locale=es'
r = requests.get(url)
tree = html.fromstring(r.content)
value=tree.xpath('//tr[@id="nodo_0_0_0"]/td[7]//td[last()]')[0].text
print(value.strip())

输出:需要22.6662

Javascript来显示值。你可以用硒来获得它。或者直接从后台加载的JSON中检索数据:

import urllib.request, json 
with urllib.request.urlopen("https://www.banxico.org.mx/canales/singleFix.json") as url:
    data = json.loads(url.read().decode())
    print(data['valor'])
产出:22.6662

备选方案:从其他地方获取值

from lxml import html
import requests

url = 'https://www.banxico.org.mx/SieInternet/consultarDirectorioInternetAction.do?sector=6&accion=consultarCuadro&idCuadro=CF102&locale=es'
r = requests.get(url)
tree = html.fromstring(r.content)
value=tree.xpath('//tr[@id="nodo_0_0_0"]/td[7]//td[last()]')[0].text
print(value.strip())

输出:22.6662

这是我的完整xpath,我建议您使用完整xpath/html/body/div[2]/div[1]/div[3]/div/div[1]/div[1]/div/div/div[5]/div/span[2]仍然得到空列表这是我的完整xpath,我建议您使用完整xpath/html/body/div[2]/div[1]/div[3]/div/div[1]/div[1]/div/div/div[5]/div/span[2]仍然获取空列表,但不能用于任何JS呈现的网站+1来自Herebood catch,但不可用于任何JS呈现的网站+这里的1也是+1的一个很好的解决方案,但是这种技术更普遍地适用于具有JavaScript生成输出的站点。是的,同意这两个观点,不是所有时候都可以像这样访问JSON或随机数据。这个解决方案更通用,在我所知道的所有情况下都可用,这也是一个很好的+1解决方案,但这种技术更普遍地适用于具有JavaScript生成输出的站点。是的,同意这两点,不是所有时候都可以访问JSON或像这样的随机数据。这个解决方案更通用,在我所知道的所有情况下都可用