当使用xpath出现AttributeError: 'NoneType' object has no attribute 'xpath'时
此时我遇到的是使用xpath操作一个html文件,运行时出现了这个错误
from lxml import etree
f = open("my4399.html", mode="r", encoding="gbk")
pageSource = f.read()
#加载数据返回element对象
et = etree.HTML(pageSource)
#xpath的语法
result = et.xpath("//ul/li/a/@href")
print(result)
此时出现了这个情况,说明出现了none类型,
print(type(et))后,返回的类型即为NoneTpye说明获取到的对象是None,而None是没有xpath属性,所以会报错。
之所以会出现这种情况,说明是etree.HTML解析失败了,这可能是由于需要解析的内容html的格式不正确或者不完整导致的,也可能是由于解析器不支持该html格式。
建议检查一下html的格式是否正确或者尝试使用其他解析器进行解析。
此处我在修改了错误的html格式后就可以成功运行了,如果html没错之后还是无法运行可以尝试使用其他html解析库,如BeautifulSoup,它可以处理一些不规范的html文本