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批量爬取图片的资料请关注脚本之家其它相关文章!

相关文章

  • 关于numpy强制类型转换的问题

    关于numpy强制类型转换的问题

    这篇文章主要介绍了关于numpy强制类型转换的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 关于安装halcon包pycharm提示不全的问题

    关于安装halcon包pycharm提示不全的问题

    很多小伙伴给小编反映在pycham上面安装halcon对应的安装包之后,导入出现问题,发现输入ha.read 没有自动提示 ,只有几个变量和方法,怎么解决这个问题呢,下面小编给大家带来了安装halcon包pycharm提示不全的问题,一起看看吧
    2021-06-06
  • Python实现蓝线挑战特效的示例代码

    Python实现蓝线挑战特效的示例代码

    在抖音曾经火了一阵子的蓝线挑战特效,其原理很简单。本文将试着用opencv-python实现这个效果,做了摄像头版本和视频处理版本,感兴趣的可以学习一下
    2022-10-10
  • python实现zabbix发送短信脚本

    python实现zabbix发送短信脚本

    这篇文章主要为大家详细介绍了python实现zabbix发送短信脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • python支持多继承吗

    python支持多继承吗

    在本篇文章里小编给大家整理的是关于python支持多继承的相关基础知识点,需要的朋友们跟着学习参考下。
    2020-06-06
  • Python使用Nocalhost并开启debug调试的方法

    Python使用Nocalhost并开启debug调试的方法

    Nocalhost是一种开发者工具,支持针对Kubernetes应用程序进行调试和部署,这篇文章主要介绍了Python怎么使用Nocalhost并开启debug,需要的朋友可以参考下
    2023-04-04
  • 使用python 计算百分位数实现数据分箱代码

    使用python 计算百分位数实现数据分箱代码

    这篇文章主要介绍了使用python 计算百分位数实现数据分箱代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python3里gbk编码的问题解决

    python3里gbk编码的问题解决

    本文主要介绍了python3里gbk编码的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 关于python返回值return用法详解

    关于python返回值return用法详解

    这篇文章主要介绍了python中的return关键字,包括其含义、作用、默认返回值、不同整数值的含义、返回值的类型、函数作为参数传递以及在类方法中的特殊情况,需要的朋友可以参考下
    2024-12-12
  • python调用百度通用翻译API的方法实现

    python调用百度通用翻译API的方法实现

    本文主要介绍了python调用百度通用翻译API的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01

最新评论