python批量爬取图片的方法详解

 更新时间:2023年12月11日 09:17:17   作者:开心就好啦啦啦  
这篇文章给大家介绍了如何使用python批量爬取图片,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

在这里插入图片描述

爬取的目标网站为

https://sc.chinaz.com/tupian/qinglvtupian.html

如果爬取多页,需要依次遍历每一页,经过分析跳转其它页面的规律如下

https://sc.chinaz.com/tupian/qinglvtupian_N.html
N从2开始,除了第一页不同,后面跳转其它页面规律相同

爬虫步骤

  • 根据请求url地址获取网页源码,使用requests库
  • 通过xpath解析源码获取需要的数据
  • 获取到数据下载到本地

爬取前十页图片到本地

根据页码获取网络源码

def create_request(page):
    if page == 1:
        url = 'https://sc.chinaz.com/tupian/qinglvtupian.html'
    else:
        url = 'https://sc.chinaz.com/tupian/qinglvtupian_'+str(page)+'.html'
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
    }
    request = urllib.request.Request(url,headers=header)
    #获取网络源码
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf-8')
    return content

使用xpath解析网页

使用xpath需要在chrome中安装此插件,安装xpath完成后,按alt+shift+x就会出现黑框

//img[@class="lazy"]/@alt  #获取图片名称
//img[@class="lazy"]/@data-original  #获取图片地址

在这里插入图片描述

解析网页并下载图片

下载图片、网页、视频使用的函数为urllib.request.urlretrieve()

def down_load(content):
    tree = etree.HTML(content) #解析网页数据   解析本地的html文件  etree.parse('D:/pages/test.html')
    name_list = tree.xpath('//img[@class="lazy"]/@alt')
    # 图片会进行懒加载
    src_list = tree.xpath('//img[@class="lazy"]/@data-original')
    for i in range(len(name_list)):
        name = name_list[i]
        src = src_list[i]
        url = 'https:'+src
        urllib.request.urlretrieve(url,filename='../loveImg/'+name+'.jpg')#先在当前目录下创建loveImg文件夹

主函数如下

if __name__ == '__main__':
    start_page = int(input("开始页"))
    end_page = int(input("结束页"))
    for page in range(start_page,end_page+1):
        context = create_request(page)
        down_load(context)

下载的图片会在loveImg目录

在这里插入图片描述

以上就是python批量爬取图片的方法详解的详细内容,更多关于python批量爬取图片的资料请关注脚本之家其它相关文章!

相关文章

  • Ubuntu下Python+Flask分分钟搭建自己的服务器教程

    Ubuntu下Python+Flask分分钟搭建自己的服务器教程

    今天小编就为大家分享一篇Ubuntu下Python+Flask分分钟搭建自己的服务器教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Pytorch实验常用代码段汇总

    Pytorch实验常用代码段汇总

    这篇文章主要介绍了Pytorch实验常用代码段汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 一篇文章带你学习Python3的高阶函数

    一篇文章带你学习Python3的高阶函数

    这篇文章主要为大家详细介绍了Python3的高阶函数,主要介绍什么是高阶函数,高阶函数的用法以及几个常见的内置的高阶函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 不可错过的十本Python好书

    不可错过的十本Python好书

    不可错过的十本Python好书,分别适合入门、进阶到精深三个不同阶段的人来阅读,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 使用Python生成跑马灯视频的完整代码

    使用Python生成跑马灯视频的完整代码

    这篇文章主要介绍了如何使用Python生成跑马灯视频,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-11-11
  • python3 flask 文件占用未释放问题

    python3 flask 文件占用未释放问题

    这篇文章主要介绍了python3 flask 文件占用未释放问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Python脚本修改Maya ASCII文件路径方法实现

    Python脚本修改Maya ASCII文件路径方法实现

    本文主要介绍了Python脚本修改Maya ASCII文件路径方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 利用Python自动生成PPT的示例详解

    利用Python自动生成PPT的示例详解

    在日常工作中,PPT制作是常见的工作。这篇文章主要为大家详细介绍了如何利用Python自动生成PPT,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-07-07
  • Python async模块使用方法杂谈

    Python async模块使用方法杂谈

    协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行
    2023-04-04
  • 在pycharm中设置显示行数的方法

    在pycharm中设置显示行数的方法

    今天小编就为大家分享一篇在pycharm中设置显示行数的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论