作者前言
欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com
目录
为什么要学习XPATH和LXML类库
什么是XPATH
认识XML
XML的节点关系
常⽤节点选择⼯具
节点选择语法
节点修饰语法
选择未知节点
lxml库
_____________________________________________________________
为什么要学习XPATH和LXML类库
可以利⽤ Xpath 来快速的定位特定元素以及获取节点信息,我们可以理解 为对 html 或 xml 形式的⽂本提取特定的内容
什么是XPATH
Xpath 全称是 xml path language ,Xpath是⼀⻔在 HTML/XML ⽂档中查 找信息的语⾔,可⽤来在HTML/XML ⽂档中对元素和属性进⾏遍 历, XPath 使⽤路径表达式来选取 HTML/XML ⽂档中的节点或者节点集
认识XML
XML的节点关系
节点的概念:每个XML的标签我们都称之为节点 ,其中最顶层的节点称为根节
点
节点选择语法
节点修饰语法
选择未知节点
lxml库
lxml 是 ⼀个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。
利⽤etree.HTML,将字符串转化为Element对象
lxml python 官⽅⽂档: http://lxml.de/index.html 可使⽤ pip 安装: pip install lxml (或通过wheel⽅式安装)
lxml 可以⾃动修正 html 代码
安装:
下面我来爬取一个页面来给小可爱们
代码:
import requests
from lxml import etreedef parse_data(html):# 创建一个xpath对象e_html=etree.HTML(html)# print(e_html.xpath('//main[@id="c-626160000"]'))for i in e_html.xpath('//main[@id="c-626160000"]'):print("/n".join(i.xpath('./p//text()')).strip())return "".join(i.xpath('./p//text()')).strip()def save_data(data):with open("小说.txt","w",encoding="utf-8")as f:f.write(data)def parse_url(url,header):response = requests.get(url)return responsedef main():"""主要的业务逻辑"""# urlurl = "https://www.qidian.com/chapter/1021617576/626160000/"header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}# 发送请求获取响应response = parse_url(url, header)# print(response.text)html = response.text# 数据的提取data = parse_data(html)# 保存save_data(data)if __name__ == '__main__':main()
结果:
总结
这里我简单的介绍了xpath的使用和语法,小可爱有哪些不明白的可以私聊了