• python-xpath语法-爬取彼岸图4k高清动漫壁纸


    安装

    pip install lxml
    
    • 1

    导入

    from lxml import etree
    
    • 1

    xpath使用路径表达式提取html文档中的元素或元素集,然后元素通过沿路径path或步steps来选取数据

    XPath常用语法格式

    表达式描述
    div选取div元素的所有子元素
    /div选取根元素div
    ul//li选取ul元素下的所有li子元素
    //@class选取所有具有class属性的元素
    ul/li/[1]选取ul元素下的第一个li子元素
    //div[@id=‘t2’]选取id属性为t2的所有div元素
    //li[@class=‘box’]选取class属性为box的li子元素
    /div/ui/li[@class=‘top’]选取根元素div下ul元素下的class属性为top的li子元素
    //li/a/@href获取li元素下所有a元素的href值
    //li/a/text()获取li元素下所有a元素的文本内容

    使用xpath匹配数据实践

    爬取彼岸图4k高清动漫壁纸 https://pic.netbian.com/4kdongman/

    爬取第一页的图片

    import requests
    from lxml import etree
    import os
    
    url = 'https://pic.netbian.com/4kdongman/index.html'
    r = requests.get(url)
    r.encoding='gbk'
    html = etree.HTML(r.text)# 
    img_urls = html.xpath("//div[@class='slist']/ul/li/a/@href")# ['/tupian/32274.html', '/tupian/32257.html', ...
    for img_url in img_urls:
        # 第二层url
        img_url = 'https://pic.netbian.com' + img_url
        rr = requests.get(url=img_url)
        rr.encoding='gbk'
        img_html = etree.HTML(rr.text)
        img_name = img_html.xpath("//a[@id='img']/img/@title")[0]
        # 高清图片的src
        img_src = 'https://pic.netbian.com' + img_html.xpath("//a[@id='img']/img/@src")[0]
        rimg = requests.get(url = img_src)
        # 可以改文件夹的名字
        folder_name = 'dongman'
        if not os.path.exists(folder_name):
            os.mkdir(folder_name)
        # 保存图片
        with open(f'{folder_name}/{img_name}.jpg','wb') as f:
            f.write(rimg.content)
        print(img_name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述
    批量爬取多页图片

  • 相关阅读:
    嵌入式开发学习之STM32F407串口(USART)收发数据(三)
    基于springboot校园二手书交易管理系统
    Linux C++ 053-设计模式之模板方法模式
    网络攻防原理与技术 第一章 课后题
    python---面向对象(类和对象)
    音频文件元数据修改:批量操作的技巧和方法
    实用的 “edge://flags“
    QUIC协议报文解析(三)
    卸载Erlang和RabbitMQ
    前端小案例1:用css实现蒙层效果
  • 原文地址:https://blog.csdn.net/weixin_64729620/article/details/132840509