Python利用requests模块下载图片实例代码

 更新时间:2019年08月12日 09:51:38   作者:傲娇的草履虫  
这篇文章主要给大家介绍了关于Python利用requests模块下载图片的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

本文主要介绍的是关于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()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • wxPython的安装与使用教程

    wxPython的安装与使用教程

    wxPython是Python语言的一套优秀的GUI图形库。wxPython可以很方便的创建完整的、功能键全的GUI用户界面。这篇文章给大家介绍了wxPython的安装与使用,感兴趣的朋友一起看看吧
    2018-08-08
  • python标准库ElementTree处理xml

    python标准库ElementTree处理xml

    这篇文章主要为大家介绍了python标准库ElementTree处理xml的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python利用PyPDF2快速拆分PDF文档

    Python利用PyPDF2快速拆分PDF文档

    很多时候需要拆分PDF,但是大部分需要付费,免费的限制很多,本文就使用Python快速拆分PDF文档,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • 教你用Python实现Excel表格处理

    教你用Python实现Excel表格处理

    今天教各位小伙伴怎么用Python处理excel,文中有非常详细的代码示例及相关知识总结,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python pypinyin注音库轻松丝滑实现汉字转换成拼音

    Python pypinyin注音库轻松丝滑实现汉字转换成拼音

    pypinyin 库,能像功夫熊猫那样,轻松、快捷地帮你把汉字转换成拼音,有了 pypinyin,不仅可以节省宝贵的时间,还可以更准确地展示中文字符的读音,使文化交流更为顺畅,本文带大家一起探索 pypinyin 库的魅力
    2024-01-01
  • Python实现一个简单的QQ截图

    Python实现一个简单的QQ截图

    大家好,本篇文章主要讲的是Python实现一个简单的QQ截图,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下的相关资料
    2022-02-02
  • 基于OpenCV python3实现证件照换背景的方法

    基于OpenCV python3实现证件照换背景的方法

    这篇文章主要介绍了基于OpenCV python3实现证件照换背景的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • python第三方库subprocess执行cmd同时输入密码获取参数

    python第三方库subprocess执行cmd同时输入密码获取参数

    本文给大家介绍python subprocess执行cmd同时输入密码获取参数,手动输入cmd命令,本文给大家逐一介绍这个命令的使用方法,感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • Python实现数据透视表详解

    Python实现数据透视表详解

    今天小编就为大家分享一篇用Python实现数据的透视表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-10-10
  • Python数学建模学习模拟退火算法约束条件处理示例解析

    Python数学建模学习模拟退火算法约束条件处理示例解析

    线性规划(Linear programming),是研究线性约束条件下线性目标函数的极值问题的优化方法,常用于解决利用现有的资源得到最优决策的问题,本文使用惩罚函数法,分析模拟退火算法处理线性规划问题,相关内容也适用于非线性规划问题
    2021-10-10

最新评论