python使用requests库下载单张图片的简单示例

  • 简要说明
  • 代码示例

简要说明

下载图片的核心代码如下:

res = requests.get(url=img_url, headers=headers)
if 200 == res.status_code:with open(file_path, 'wb') as file:file.write(res.content)

使用requests库,直接对图片的url进行请求,如果返回状态码为200(ok)的话,那么get方法返回的content二进制串即为图片的真实内容,我们只需将其写入文件即可。

代码示例

下面的示例代码中加入了路径的处理。

import requests
import random
import osclass PicDownloader():def __init__(self):self.count = 0          # 用于文件编号self.file_name = 'img'  # 默认文件名self.working_dir = '.'  # 默认工作目录def download_img(self, img_url, dir='.'):'''下载url指定的图片到本地dir目录'''self.count += 1self.file_name = self.file_name + '_' + str(self.count) + '.jpg'# 如果指定的下载目录不存在,则尝试创建if os.path.isdir(dir):self.working_dir = direlse:try:os.makedirs(dir)self.working_dir = direxcept OSError as e:print(f'create dir: {dir} failed')# 生成完整的路径名file_path = os.path.join(self.working_dir, self.file_name)print(f'开始下载文件:{file_path}')headers = self.get_headers()try:res = requests.get(url=img_url, headers=headers)if 200 == res.status_code:with open(file_path, 'wb') as file:file.write(res.content)except Exception as e:print(f'下载文件失败: {file_path}')print(repr(e))print('文件下载成功')# 供爬虫使用的,此例中并不需要这么多,随便取一种就行了def get_headers(self):user_agent_list = ["Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1","Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5","Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3","Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]userAgent = random.choice(user_agent_list)headers = {'User-Agent': userAgent}return headersif __name__== '__main__':downloader = PicDownloader()downloader.download_img('https://images.weserv.nl/?url=https%3A%2F%2F23img.com%2Fi%2F2022%2F08%2F17%2Fqykvvx.jpg', 'd:/test')

效果如下:

python使用requests库下载单张图片的简单示例相关推荐

  1. python:利用requests库下载图片

    今天非常兴奋,身为python小白的我经过数天的看视频和看书,终于看懂了一点,程序刚刚运行成功. 话不多说,马上分享! 这次用到的是requests库 先来介绍下requests库 Requests是 ...

  2. python批量处理图像_python批量图片处理简单示例

    本文实例讲述了python批量图片处理.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding:utf-8 import os from PIL import Image ...

  3. python requests下载图片_Python使用urllib库、requests库下载图片的方法比较

    我们知道,使用Python制作一个爬虫程序,requests库是一个不错的选择,requests发送网络请求非常简单,比较使用urllib库,使用requests库可以大大减少代码量,它还可以定制请求 ...

  4. Python - Requests库下载图片

    Python - Requests库下载图片 import requests# 获取网络图片资源 r = requests.get('https://www.baidu.com/img/bd_logo ...

  5. Python爬虫——Requests 库基本使用

    文章目录 Python爬虫--Requests 库基本使用 1.Requests简介和下载 2.Requests 库基本使用 Python爬虫--Requests 库基本使用 1.Requests简介 ...

  6. python中requests库的用途-数据爬虫(三):python中requests库使用方法详解

    有些网站访问时必须带有浏览器等信息,如果不传入headers就会报错,如下 使用 Requests 模块,上传文件也是如此简单的,文件的类型会自动进行处理: 因为12306有一个错误证书,我们那它的网 ...

  7. Python 的 requests 库的用法

    Python爬虫利器一之Requests库的用法:http://cuiqingcai.com/2556.html Python利用Requests库写爬虫(一):http://www.jianshu. ...

  8. python导入requests库一直报错原因总结_python pip 安装库文件报错:pip install ImportError: No module named _internal...

    centos6,python3,通过pip安装pycurl出现报错提示 Centos6.7系统,python3.6.7,通过 pip 安装pycurl出现报错: __main__.Configurat ...

  9. python网络爬虫系列教程——python中requests库应用全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python中requests库的基础应用,网页数据挖掘的常用库之一.也就是说最主要的功能是从网页抓取数据. 使用前需要先联网安装reques ...

最新文章

  1. winform point数组带数值_带你学够浪:Go语言基础系列 - 8分钟学复合类型
  2. 今时今日,C还适合当下之所需么?
  3. ACCESS实例1——简易文档管理器
  4. SYN报文什么时候会被丢弃?
  5. Python提取Word文档中所有脚注文本
  6. Go语言优秀的Revel开源框架推荐
  7. 【汇正财经】股票开盘价收盘价是什么?最高价和最低价呢?
  8. 有关H5的第一章介绍
  9. m3u8转换到mp4 python_python实现m3u8格式转换为mp4视频格式
  10. 什么是分布式存储?(IPFS, FileCoin, Sia, Storj Swarm)
  11. 禁止非法root的设备OTA升级
  12. JavaMail邮件发送不成功的那些坑人情况及分析说明(巨坑跳出专用姿势)
  13. 【前端学习笔记 CSS系列二十二】justify
  14. 求解幂集问题(蛮力法)
  15. 实现在线预览PDF的几种解决方案
  16. 解释什么是蓝绿发布?
  17. 如何进行直播搭建,带货直播系统源码怎么制作?
  18. Java高级技术梳理
  19. Navicat导出导入sql文件慢
  20. 大型圆弧怎么处理_大型弧形墙施工方法

热门文章

  1. 手把手教你免费看IOS微信红包照片
  2. 微信小程序自定义navigationBar、自定义标题栏
  3. php java bridge实例,PHP/Java Bridge的使用
  4. Redis——Info指令
  5. touchdesigner下载_Derivative TouchDesigner官方下载
  6. nwjs macos 签名 公证
  7. ISO三体系认证辅导,什么是三体系认证,企业进行三体系认证的意义
  8. 巨头纷纷扎堆布局即时配送 物流行业进入即时配送下半场?
  9. 动态调整ConstaintLayout元素位置
  10. 【无标题】回收二手锅炉,燃油锅炉,二手燃煤锅炉,有机热载体锅炉,废旧锅炉,立式锅炉,卧式锅炉