作者前言
欢迎小可爱们前来借鉴我的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 etree
def 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 response
def main():
"""主要的业务逻辑"""
# url
url = "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的使用和语法,小可爱有哪些不明白的可以私聊了