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

作者前言

 欢迎小可爱们前来借鉴我的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的使用和语法,小可爱有哪些不明白的可以私聊了

猜你喜欢

转载自blog.csdn.net/m0_69984273/article/details/131258363
今日推荐