• 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

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

  • 相关阅读:
    React中setState的异步与合并
    安装升级rancher
    2023亚太地区数学建模C题思路+模型+代码+论文
    MoE 大模型的前世今生
    联邦学习:联邦场景下的域泛化
    【批量去除图片的背景】
    Linux文件属性
    原来Python内置了一个微型数据库,超实用!!!
    MM32F0020 GPIO驱动LED灯(MM32F0020 GPIO Toggle)
    数据结构-线性表
  • 原文地址:https://blog.csdn.net/weixin_64729620/article/details/132840509