【问题标题】:xpath query on a html table always returns empty string in pythonhtml表上的xpath查询总是在python中返回空字符串
【发布时间】:2018-10-02 12:20:15
【问题描述】:

这是我尝试过的python代码:

from lxml import html
import requests


page = requests.get('http://www.rsssf.com/tablese/eng2017det.html')
tree = html.fromstring(page.content)
print(tree.xpath('/html/body/table/tbody/tr[2]//text()'))

我的输出总是 [] 我也检查了html页面,URL没有损坏

【问题讨论】:

  • 请注意,lxml.html 仅支持 XPath 1.0,因此 XPath 2.0 标记是多余的

标签: python xpath python-requests lxml


【解决方案1】:

不要在 XPath 中使用 tbody 标记。注意开发者可能会跳过这个标签,所以它会在页面渲染时被浏览器自动添加。

试一试

print(tree.xpath('/html/body/table//tr[2]//text()'))

print([i for i in tree.xpath('/html/body/table//tr[2]//text()') if i.strip()])

避免打印换行符

【讨论】:

  • 谢谢。它有帮助。关于如何从头到尾迭代所有 tr 标签的任何线索?
  • 只需删除索引即可获取表格行列表:for row in tree.xpath('/html/body/table//tr'): print(row.text_content())
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2019-07-25
  • 2022-09-27
  • 2013-09-14
  • 2016-07-21
  • 1970-01-01
  • 2013-04-01
相关资源
最近更新 更多