## lxml.etree.XPathEvalError: Invalid predicate错误如何解决

一句话概括

就看你的xpath定位路径写对了没有

以下是我的脑残操作

代码

from lxml import etree
import requests

headers = {
    'cookie':'JSESSIONID=3FDECBD0B73FB457A0C1A0F; _jfinal_captcha=6c5c72400f8db9f3abf2b20a; username=xxxxx; password=123456'
}

resp = requests.get('http://192.168.x.xxx:8080/xxxxx/sell',headers=headers)
html = etree.HTML(resp.text) 

result = html.xpath("//ul[@class='nav navbar-nav navbar-right']/li/a/text()")
# 就是这句的问题

print(result)

运行结果

lxml.etree.XPathEvalError: Invalid predicate

在网上看了看别人帖子的回答,反反复复检查了好几遍,才发现问题

错误的:

result = html.xpath("//ul[@class-'nav navbar-nav navbar-right']/li/a/text()")

正确的:

result = html.xpath("//ul[@class='nav navbar-nav navbar-right']/li/a/text()")

就是xpath定位里面打错了一个符号

改正后的运行结果

['admin\xa0\xa0 管理员', '注销', '微信']

Process finished with exit code 0

新手果然有大大小小的各种坑,都是自己挖的

上一篇:Java 8学习笔记之初识lambda表达式


下一篇:C#中Predicate与Func泛型委托的用法实例