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中死锁的形成示例及死锁情况的防止
Jun 14 Python
详解Python中类的定义与使用
Apr 11 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
Python实现获取前100组勾股数的方法示例
May 04 Python
Python3中关于cookie的创建与保存
Oct 21 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
对于Python深浅拷贝的理解
Jul 29 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 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 网页过期时间的控制代码
2009/06/29 PHP
php连接数据库代码应用分析
2011/05/29 PHP
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
jQuery在ul中显示某个li索引号的方法
2015/03/17 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
javascript特效实现——当前时间和倒计时效果的简单实例
2016/07/20 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
关于vue面试题汇总
2018/03/20 Javascript
Vue+Koa2+mongoose写一个像素绘板的实现方法
2019/09/10 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
python清除指定目录内所有文件中script的方法
2015/06/30 Python
python 文件操作删除某行的实例
2017/09/04 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
wxPython的安装与使用教程
2018/08/31 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
python进行参数传递的方法
2020/05/12 Python
如何在python中判断变量的类型
2020/07/29 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
股权转让协议书
2014/04/12 职场文书
入队仪式主持词
2015/07/04 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
关于Python中进度条的六个实用技巧分享
2022/04/05 Python