noc*_*ura 5 python xpath lxml google-chrome
这是我的代码:
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)
Run Code Online (Sandbox Code Playgroud)
问题:print(title)打印"[]",空列表.我希望这会打印出"Nabucco".XPath表达式来自Chrome检查器"复制XPath"功能.
为什么这不起作用?lxml和Chrome的xpath引擎之间是否存在分歧?或者我错过了什么?我对python,lxml和xpath有些新意.
这是因为tbody标签.您可以在浏览器中看到它,因为浏览器已插入 标记.requests不是浏览器,只是按原样下载页面源:
更换:
//*[@id="mw-content-text"]/table[1]/tbody/tr[1]/th/i
Run Code Online (Sandbox Code Playgroud)
有:
//*[@id="mw-content-text"]/table[1]/tr[1]/th/i
Run Code Online (Sandbox Code Playgroud)