1. 简介:
Xpath是XML Path Language (XML路径语言)的缩写,是一门适用于XML脚本查找信息的语言,该语言同样也适用于在HTML中查找信息。
2.安装
pip install lxml
3. 常用语法:
表达式 | 简介 |
---|---|
nodename | 选取此节点的所有子节点 |
/ | 从当前节点直接选取子节点 |
// | 从当前节点选取子孙节点 |
. | 选取当前节点 |
. . | 从当前节点选取父节点 |
@ | 选取属性 |
4. Xpath的常用表达式:
//name[@attr=‘string’]
表示选择所有名称为name,属性为attr为string的节点。
a. name表示标签头的名称,如head、body、div、title等;
b. @attr表示某一个属性,例如id、class等
c. 'string’表示属性的具体名称
举个例子:
以百度首页为例,要、我们要获取红框中的节点数据
代码如下:
from lxml import etree
import requests
url = 'https://www.baidu.com/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'
}
response = requests.get(url, headers=headers) # 通过requests获取百度首页信息
html = etree.HTML(response.text) # 将百度首页的html代码以文本形式传给HTML类进行初始化,构造一个Xpath的解析对象
result_type = html.xpath('//*[@id="s-top-left"]/a') # 将我们所要获取信息的xpath路径传入并进行定位
result = html.xpath('//*[@id="s-top-left"]/a/text()') # 后面接'/text()'表示获取文本信息
print(result_type)
print(result)
运行结果:
D:\Python\python.exe C:/Users/Desktop/Code/xpath.py
[<Element a at 0x27512014a48>, <Element a at 0x27512023f48>, <Element a at 0x27512023c48>, <Element a at 0x275120231c8>, <Element a at 0x27512023e48>, <Element a at 0x27512037548>]
['新闻', 'hao123', '地图', '视频', '贴吧', '学术']
Process finished with exit code