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 实时遍历日志文件
Apr 12 Python
python3结合openpyxl库实现excel操作的实例代码
Sep 11 Python
Python根据文件名批量转移图片的方法
Oct 21 Python
Python 串口读写的实现方法
Jun 12 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
python处理大日志文件
Jul 23 Python
如何基于Python制作有道翻译小工具
Dec 16 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
python实现ROA算子边缘检测算法
Apr 05 Python
python flappy bird小游戏分步实现流程
Feb 15 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
PHP分页效率终结版(推荐)
2013/07/01 PHP
php中使用sftp教程
2015/03/30 PHP
php设计模式之单例模式代码
2016/06/11 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
javascript表单验证大全
2015/08/12 Javascript
javascript中sort() 方法使用详解
2015/08/30 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
js正则相关知识点专题
2018/05/10 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
迎八一活动主题
2014/01/31 职场文书
诚信贷款承诺书
2014/05/30 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
会计电算化实训报告
2014/11/04 职场文书
导游词开场白
2015/01/31 职场文书
美术教师个人工作总结
2015/02/06 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
男生贾里读书笔记
2015/06/30 职场文书
女性健康讲座主持词
2015/07/04 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python