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 相关文章推荐
web.py获取上传文件名的正确方法
Aug 26 Python
Python中的zip函数使用示例
Jan 29 Python
Python实现telnet服务器的方法
Jul 10 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
python机器学习库常用汇总
Nov 15 Python
Python 错误和异常代码详解
Jan 29 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
Django的Modelforms用法简介
Jul 27 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
python实现根据文件格式分类
Oct 31 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 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 中关于ord($str)>0x80的详细说明
2012/09/23 PHP
PHP答题类应用接口实例
2015/02/09 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
vue form表单post请求结合Servlet实现文件上传功能
2021/01/22 Vue.js
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
python分布式计算dispy的使用详解
2019/12/22 Python
python进行参数传递的方法
2020/05/12 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
急诊科护士自我鉴定
2013/10/14 职场文书
大学生党员承诺书
2014/05/20 职场文书
公路施工安全责任书
2015/05/08 职场文书
认识实习感想
2015/08/10 职场文书
学习委员竞选稿
2015/11/20 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers