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中文乱码的解决方法
Nov 04 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
极简的Python入门指引
Apr 01 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
Python使用微信SDK实现的微信支付功能示例
Jun 30 Python
Python输出带颜色的字符串实例
Oct 10 Python
分享一下Python数据分析常用的8款工具
Apr 29 Python
Tensorflow 实现修改张量特定元素的值方法
Jul 30 Python
解决python中无法自动补全代码的问题
Dec 04 Python
详解如何用TensorFlow训练和识别/分类自定义图片
Aug 05 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
解决hive中导入text文件遇到的坑
Apr 07 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打印输出函数汇总
2016/08/28 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
Angular2中select用法之设置默认值与事件详解
2017/05/07 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
js实现多张图片延迟加载效果
2017/07/17 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
Python获取当前时间的方法
2014/01/14 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
Missguided美国官网:英国时尚品牌
2018/01/18 全球购物
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
智能室内花园:Click & Grow
2021/01/29 全球购物
linux面试题参考答案(5)
2014/09/01 面试题
座谈会主持词
2014/03/20 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
机关办公室岗位职责
2014/04/16 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
开展警示教育活动总结
2015/05/09 职场文书