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 相关文章推荐
python字符串与url编码的转换实例
May 10 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
django富文本编辑器的实现示例
Apr 10 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
Python netmiko模块的使用
Feb 14 Python
python实现扫雷游戏
Mar 03 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
python 安装impala包步骤
Mar 28 Python
为什么称python为胶水语言
Jun 16 Python
用python进行视频剪辑
Nov 02 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
JS简单循环遍历json数组的方法
2016/04/22 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
详解基于node.js的脚手架工具开发经历
2019/01/28 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
python定时关机小脚本
2018/06/20 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
探索HTML5本地存储功能运用技巧
2016/03/02 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
中学生操行评语
2014/04/24 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
办公室岗位职责范本
2015/04/11 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
理解深度学习之深度学习简介
2021/04/14 Python