目录
# 1. Xpath & lxml 简介
# 2. lxml
## 2.1 导入
## 2.2 生成树状结构 - etree
## 2.3 树状结构解析 - .xpath('html文件所需值所在的路径')
# 3. Xpath
## 3.1 源代码
## 3.2 用到的 html 文件
---
# 1. Xpath & lxml 简介
XPath,全称XML Path Language,即XML路径语言;
lxml,支持HTML和XML的解析,支持XPath解析方式.
# 2. lxml
## 2.1 导入
from lxml import etree
## 2.2 生成树状结构 - etree
from lxml import etree
## 2.2 生成树状结构 - etree
对于网页文件,用etree.HTML(res),其中res是你requests.get(url).text;
对于本地 html 文件,用etree.parse(./xxx.html) 即可;
i.e. 两种方法的参数只要确保为.html格式即可
## 2.3 树状结构解析 - .xpath('html文件所需值所在的路径')
# 3. Xpath
## 3.1 源代码
一般返回三种类型:节点,属性@,文本text()
from lxml import etree
tree = etree.parse('./xpath.html')
res = tree.xpath('//*')
res = tree.xpath('//ul/li')
res = tree.xpath('//ol/../@class')
res = tree.xpath('//li[6]/a/text()')
res = tree.xpath('//ul/li[last()]/a/text()')
res = tree.xpath('//li[position()<3]//text()')
res = tree.xpath('//ul/li[last()-2]//text()')
res = tree.xpath('//ul//@href')
res = tree.xpath('//ul/li[5]/a/@href')
res = tree.xpath('//li[@]')
"""[]_element类型"""
res = tree.xpath('//li[contains(@class, "li")]/a/text()')
res = tree.xpath('//li[@class = "li" and @name = "item"]/a/text()')
res = tree.xpath('//li[@]/text()')
res = tree.xpath('//ol/li/text()')
res = tree.xpath('//ol//text()')
res = tree.xpath('//ul/li[last()-2]//text()')
print(res)



