Empty List LXML XPATH



我遇到了问题,从提供的链接(https://www.avisosdeocasion.com/Resultados-Inmuebles.aspx?n=venta-casas-nuevo-leon&PlazaBusqueda=2&Plaza=2.html(我试图从每个表中获取第一个信息('2 plantas...3 植物等(但我从下面的代码中收到一个空的 lis:

from lxml import html
import requests
mark=2
page = requests.get('https://www.avisosdeocasion.com/Resultados-Inmuebles.aspx?n=venta-casas-nuevo-leon&PlazaBusqueda=2&Plaza=2.html')
tree = html.fromstring(page.content)
while mark<25:
plantas=tree.xpath('//*[@id="divDetalleResultados"]/table/tbody/tr/td/table[mark]/tbody/tr[1]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td/table/tbody/tr[1]/td[1]/text()')
mark=mark+1
print(plantas)

有人知道如何解决这个问题吗?

您需要修复 XPath 表达式。这样的事情应该有效:

from lxml import html
import requests
page = requests.get('https://www.avisosdeocasion.com/Resultados-Inmuebles.aspx?n=venta-casas-nuevo-leon&PlazaBusqueda=2&Plaza=2.html')
tree = html.fromstring(page.content)
plantas = tree.xpath('//td[contains(text(),"terreno")]/preceding-sibling::td/text()')
plantas2 = [item.strip() for item in plantas]
print(plantas2)

输出:

['2 plantas', '3 plantas', '3 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '2 plantas', '3 plantas', '2 plantas', '2 plantas']

最新更新