为什么lxml找不到Chrome检查器提供的xpath?

2024-04-26 02:42:04 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

from lxml import html
import requests

page = requests.get('https://en.wikipedia.org/wiki/Nabucco')
tree = html.fromstring(page.content)
title = tree.xpath('//*[@id="mw-content-text"]/table[1]/tbody/tr[1]/th/i')
print(title)

问题:print(title)打印“[]”,空列表。我希望这上面印着“纳布科”。XPath表达式来自Chrome检查器“Copy XPath”函数。在

为什么这个没用?lxml和Chrome的xpath引擎之间是否存在分歧?还是我错过了什么?我对python、lxml和xpath有些陌生。在


Tags: 代码fromimporttreegettitlehtmlpage
1条回答
网友
1楼 · 发布于 2024-04-26 02:42:04

这是因为tbody标记。您可以在浏览器中看到它,因为标记是inserted by the browser.requests不是浏览器,只需按原样下载页面源:

替换:

//*[@id="mw-content-text"]/table[1]/tbody/tr[1]/th/i

有:

^{pr2}$

相关问题 更多 >