python---------xpath提取数据------打破局限

简介: python---------xpath提取数据------打破局限

为什么要学习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的使用和语法,小可爱有哪些不明白的可以私聊了


相关文章
|
6天前
|
数据可视化 数据挖掘 Python
Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化(下)
Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化
15 0
|
6天前
|
数据可视化 API 开发者
Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化(上)
Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均、可视化
17 0
|
6天前
|
机器学习/深度学习 数据可视化 安全
Python随机森林、线性回归对COVID-19疫情、汇率数据预测死亡率、病例数、失业率影响可视化(下)
Python随机森林、线性回归对COVID-19疫情、汇率数据预测死亡率、病例数、失业率影响可视化
15 1
|
6天前
|
机器学习/深度学习 数据可视化 Python
Python随机森林、线性回归对COVID-19疫情、汇率数据预测死亡率、病例数、失业率影响可视化(上)
Python随机森林、线性回归对COVID-19疫情、汇率数据预测死亡率、病例数、失业率影响可视化
20 0
|
5天前
|
机器学习/深度学习 存储 数据采集
【Python 机器学习专栏】PCA(主成分分析)在数据降维中的应用
【4月更文挑战第30天】本文探讨了主成分分析(PCA)在高维数据降维中的应用。PCA通过线性变换找到最大化方差的主成分,从而降低数据维度,简化存储和计算,同时去除噪声。文章介绍了PCA的基本原理、步骤,强调了PCA在数据降维、可视化和特征提取上的优势,并提供了Python实现示例。PCA广泛应用在图像压缩、机器学习和数据分析等领域,但降维后可能损失解释性,需注意选择合适主成分数量及数据预处理。
|
5天前
|
vr&ar Python
Python自激励阈值自回归(SETAR)、ARMA、BDS检验、预测分析太阳黑子时间序列数据
Python自激励阈值自回归(SETAR)、ARMA、BDS检验、预测分析太阳黑子时间序列数据
12 0
|
5天前
|
Python
Python随机波动性SV模型:贝叶斯推断马尔可夫链蒙特卡洛MCMC分析英镑/美元汇率时间序列数据|数据分享
Python随机波动性SV模型:贝叶斯推断马尔可夫链蒙特卡洛MCMC分析英镑/美元汇率时间序列数据|数据分享
12 0
|
5天前
|
机器学习/深度学习 Python
【Python机器学习专栏】时间序列数据的特征工程
【4月更文挑战第30天】本文探讨了时间序列数据的特征工程,强调其在捕捉季节性、揭示趋势、处理异常值和提升模型性能中的重要性。介绍了滞后特征、移动窗口统计特征、时间戳特征、频域特征和波动率特征等方法,并提供了Python实现示例。通过有效特征工程,可提高时间序列分析的准确性和预测可靠性。
|
5天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
5天前
|
机器学习/深度学习 自然语言处理 算法
【Python机器学习专栏】文本数据的特征提取与表示
【4月更文挑战第30天】本文探讨了文本特征提取与表示在机器学习和NLP中的重要性。介绍了词袋模型、TF-IDF和n-gram等特征提取方法,以及稀疏向量和词嵌入等表示方式。Python中可利用sklearn和gensim库实现这些技术。有效的特征提取与表示有助于将文本数据转化为可处理的数值形式,推动NLP和机器学习领域的进步。