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动态网页批量爬取
Feb 14 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
Sep 19 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
用Pygal绘制直方图代码示例
Dec 07 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
pygame游戏之旅 添加键盘按键的方法
Nov 20 Python
python re库的正则表达式入门学习教程
Mar 08 Python
创建Django项目图文实例详解
Jun 06 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
php解析json数据实例
2014/08/19 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
最新版本PHP 7 vs HHVM 多角度比较
2016/02/14 PHP
laravel5.2表单验证,并显示错误信息的实例
2019/09/29 PHP
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
jquery easyui combobox模糊过滤(示例代码)
2013/11/30 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python列表list数组array用法实例解析
2014/10/28 Python
python获取本地计算机名字的方法
2015/04/29 Python
Python制作爬虫抓取美女图
2016/01/20 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
关于python中的xpath解析定位
2020/03/06 Python
用python制作个视频下载器
2021/02/01 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
日化店促销方案
2014/03/26 职场文书
国庆节新闻稿
2015/07/17 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书