Xpath - 无法使用Text()获取信息,但我无法看到路径和数字

时间:2017-05-27 17:59:27

标签: python xpath text

我正在研究一个项目,但我无法使用Xpath获取一条信息。

https://www.vallen.com.mx/detalle/?des=PAL-09-ALT1120&articulo=Arnes-Altitude-Cuerpo-Completo-con-Ajuste-Tipo-Fricci%C3%B3n-Anillos-D-en-Espalda-y-Cintura

我查看代码,我能够获得价格,照片和其他信息,但不能获得库存(Existencia,西班牙语)我只获得标签名称,因此它会检索“Existencia:”文本而不是金额。

我尝试// * [@ id =“valExistencia”] / text()[2]“检索空白”而没有[2],带来数据标签,但没有库存量。

如果有人能帮助我,我将不胜感激。我无法获得数据,我真的需要这些信息。

如果我看代码是:

from lxml import html
import requests

#Importar de un TXT simple, un solo dato por renglon
filename= open("listado_urls.txt")
url = [urls.rstrip('\n') for urls in filename.readlines()]

#Hacer un loop
for urlunico in url:
    page = requests.get(urlunico)
    tree = html.fromstring(page.content)
    inventory = tree.xpath('//div[@class="row"]/div[@class="col-md-12"]/span[@id="valExistencia"]/text()[2]'

1 个答案:

答案 0 :(得分:2)

JavaScript动态生成的必需数据。您无法使用requests获取此数据。您可能需要使用,例如selenium + PhantomJS代替:

from selenium import webdriver as web
from selenium.webdriver.support.ui import WebDriverWait as wait

driver = web.PhantomJS()
driver.get("https://www.vallen.com.mx/detalle/?des=PAL-09-ALT1120&articulo=Arnes-Altitude-Cuerpo-Completo-con-Ajuste-Tipo-Fricci%C3%B3n-Anillos-D-en-Espalda-y-Cintura")
existencia = driver.find_element_by_id("valExistencia")
wait(driver, 10).until(lambda x: existencia.text != 'Existencia:')
print(existencia.text)

这应该允许您在更改后生成必需的span文本(生成数字)