我正在研究一个项目,但我无法使用Xpath获取一条信息。
我查看代码,我能够获得价格,照片和其他信息,但不能获得库存(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]'
答案 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
文本(生成数字)