我在python中使用xpath
编写了一个脚本来解析网页中的表格数据。执行时,它能够完美地解析表中的数据。我唯一无法修复的是解析table header
,这意味着th
标签。如果我使用css选择器做同样的事情,我本可以使用.cssselect("th,td")
但是在xpath
的情况下我被卡住了。任何有关如何解析th
标签数据的帮助也将受到高度赞赏。
这是一个脚本,它能够从th
标签中的数据中获取不同表中的所有内容:
import requests
from lxml.html import fromstring
response = requests.get("https://fantasy.premierleague.com/player-list/")
tree = fromstring(response.text)
for row in tree.xpath("//*[@class='ism-table']//tr"):
tab_d = row.xpath('.//td/text()')
print(tab_d)
我不确定我明白你的意思,但是如果你想用单个XPath获取th
和td
节点,你可以试着替换
tab_d = row.xpath('.//td/text()')
同
tab_d = row.xpath('.//*[name()=("th" or "td")]/text()')
更改
.//td/text()
至
.//*[self::td or self::th]/text()
也包括th
元素。
请注意,假设td
和th
都是tr
上下文节点的直接子节点是合理的,因此您可以进一步简化XPath:
*[self::td or self::th]/text()