Python利用requests模块下载图片实例代码


Posted in Python onAugust 12, 2019

本文主要介绍的是关于Python利用requests模块下载图片的相关,下面话不多说了,来一起看看详细的介绍吧

MySQL中事先保存好爬取到的图片链接地址。

然后使用多线程把图片下载到本地。

示例代码:

# coding: utf-8
import MySQLdb
import requests
import os
import re
from threading import Thread
import datetime

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
      'Chrome/63.0.3239.132 Safari/537.36'}
file_path = 'F:\\mlu2'
if not os.path.exists(file_path):
 os.mkdir(file_path)


class Spider(object):
 def __init__(self, file_path, header):
  self.file_path = file_path
  self.header = header

 @staticmethod
 def timer(func):
  def time_count(*args):
   start_time = datetime.datetime.now()
   func(*args)
   end_time = datetime.datetime.now()
   day = (end_time - start_time).days
   times = (end_time - start_time).seconds
   hour = times / 3600
   h = times % 3600
   minute = h / 60
   m = h % 60
   second = m
   print "爬取完成"
   print "一共用时%s天%s时%s分%s秒" % (day, hour, minute, second)
  return time_count

 def get_link(self):
  conn = MySQLdb.connect(host='localhost',
        port=3306,
        user='root',
        passwd='729814',
        db='mlu',
        charset='utf8')
  cur = conn.cursor()
  sql = 'select image from msg limit 100' # image为事先爬取存到MySQL的图片链接地址
  cur.execute(sql)
  img_link = cur.fetchall()
  return img_link

 def download(self, link):
  filename = re.findall(r'.*/(.+)', link)[0]
  try:
   pic = requests.get(link, headers=self.header)
   if pic.status_code == 200:
    with open(os.path.join(self.file_path)+os.sep+filename, 'wb') as fp:
     fp.write(pic.content)
     fp.close()
   print "下载完成"
  except Exception as e:
   print e

 @timer
 def run_main(self):
  threads = []
  links = self.get_link()
  for link in links:
   img = str(link[0])
   t = Thread(target=self.download, args=[img])
   t.start()
   threads.append(t)
  for t in threads:
   t.join()


spider = Spider(file_path, header)
spider.run_main()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
May 16 Python
python简单获取数组元素个数的方法
Jul 13 Python
Python3中类、模块、错误与异常、文件的简易教程
Nov 20 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
Python检查图片是否损坏及图片类型是否正确过程详解
Sep 30 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
django使用graphql的实例
Sep 02 Python
django+tornado实现实时查看远程日志的方法
Aug 12 #Python
Django结合ajax进行页面实时更新的例子
Aug 12 #Python
django fernet fields字段加密实践详解
Aug 12 #Python
利用pyecharts实现地图可视化的例子
Aug 12 #Python
django echarts饼图数据动态加载的实例
Aug 12 #Python
python scrapy爬虫代码及填坑
Aug 12 #Python
Python 中的 global 标识对变量作用域的影响
Aug 12 #Python
You might like
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
Email+URL的判断和自动转换函数
2006/10/09 PHP
[原创]PHP中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
两个开源的Php输出Excel文件类
2010/02/08 PHP
使用phpstorm和xdebug实现远程调试的方法
2015/12/29 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
2016/03/25 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
JS实现随机颜色的3种方法与颜色格式的转化
2017/01/05 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
python中as用法实例分析
2015/04/30 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
python实现的汉诺塔算法示例
2019/10/23 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
python中列表的含义及用法
2020/05/26 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
使用CSS3创建动态菜单效果
2015/07/10 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
军训自我鉴定怎么写
2014/02/13 职场文书
高三学习决心书
2014/03/11 职场文书
公司节能减排方案
2014/05/16 职场文书
实习指导老师意见
2015/06/04 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技