python 并发下载器
目标:使用协程实现网络图片下载
思路:
1.根据url地址请求网络资源
2.在本地创建文件准备保存
3.读取网络资源数据
4.把读取的网络资源写入到本地文件中
5.做异常捕获
代码:
单线程下载:
import urllibdef download_img(imgUrl, fileName):# 根据url请求网络资源response_data = urllib.request.urlopen(imgUrl)# 在本地创建文件,准备保存with open(fileName, "wb") as file:while True:# 读取网络资源file_data = response_data.read(1024)# 判断读取的数据是否为空,不为空继续写,为则表示已经读到文件末尾,需跳出循环if file_data:# 写入本地文件file.write(file_data)else:breakdef main():# 要下载图片的路径img1Url = "https://www.qqpao.com/uploads/allimg/181116/10-1Q116102128.gif"img2Url = "https://uploadfile.huiyi8.com/2014/1107/20141107114402602.gif"img3Url = "https://media1.giphy.com/media/l41lXnhesd96Aa9os/giphy.gif"download_img(img1Url,"C:/Users/Desktop/1.gif")download_img(img2Url, "C:/Users/Desktop/2.gif")download_img(img3Url, "C:/Users/Desktop/3.gif")if __name__ == '__main__':main()
使用协程实现并发下载:
import urllib,gevent,requests
from gevent import monkey
monkey.patch_all()def download_img(imgUrl, fileName):try:# 根据url请求网络资源response_data = urllib.request.urlopen(imgUrl)# 在本地创建文件,准备保存with open(fileName, "wb") as file:while True:# 读取网络资源file_data = response_data.read(1024)# 判断读取的数据是否为空,不为空继续写,为则表示已经读到文件末尾,需跳出循环if file_data:# 写入本地文件file.write(file_data)else:breakexcept Exception as e:print("文件 %s 下载失败! %s" % (fileName,e))else:print("文件 %s 下载成功!" % (fileName))def main():# 要下载图片的路径img1Url = "https://www.qqpao.com/uploads/allimg/181116/10-1Q116102128.gif"img2Url = "https://uploadfile.huiyi8.com/2014/1107/20141107114402602.gif"img3Url = "https://media1.giphy.com/media/l41lXnhesd96Aa9os/giphy.gif"gevent.joinall([gevent.spawn(download_img, img1Url, "C:/Users/Desktop/1.gif"),gevent.spawn(download_img, img2Url, "C:/Users/Desktop/2.gif"),gevent.spawn(download_img, img3Url, "C:/Users/Desktop/3.gif"),])if __name__ == '__main__':main()
python 并发下载器相关推荐
- python编写下载器可暂停_python 并发下载器实现方法示例
本文实例讲述了python 并发下载器实现方法.分享给大家供大家参考,具体如下: 并发下载器 并发下载原理 from gevent import monkey import gevent import ...
- python视频下载-python动态视频下载器的实现方法
这里向大家分享一下python爬虫的一些应用,主要是用爬虫配合简单的GUI界面实现视频,音乐和小说的下载器.今天就先介绍如何实现一个动态视频下载器. 爬取电影天堂视频 首先介绍的是python爬取电影 ...
- python编写下载器可暂停_Python编写一个优美的下载器
本文实例为大家分享了python编写下载器的具体代码,供大家参考,具体内容如下 #!/bin/python3 # author: lidawei # create: 2016-07-11 # vers ...
- python音乐下载器安装_python实现音乐下载器
本文实例为大家分享了python音乐下载器的具体代码,供大家参考,具体内容如下 import requests import urllib import json from tkinter impor ...
- python并发下载
python并发下载 多线程爬虫 多线程爬虫请求内容速度过快,可能会造成服务器过载,或者是IP地址被封禁.为了避免出现这种情况,我们需要给爬虫设置一个delay延迟标识,设定请求同一个域名的时候的 ...
- python小说下载器_python 制作网站小说下载器
基本开发环境 · Python 3.6 · Pycharm 相关模块使用 目标网页分析 输入想看的小说内容,点击搜索 这里会返回很多结果,我只选择第一个 网页数据是静态数据,但是要搜索,是post请求 ...
- python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...
前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...
- python动态视频下载器
这里向大家分享一下python爬虫的一些应用,主要是用爬虫配合简单的GUI界面实现视频,音乐和小说的下载器.今天就先介绍如何实现一个动态视频下载器. 爬取电影天堂视频 首先介绍的是python爬取电影 ...
- Python Tkinter 下载器 多任务下载+多线程下载+多任务断点续存
功能介绍: 这次的下载器特点:多线程下载 + 多任务下载 + 多任务断点续存 视频演示: Python Tkinter 系列 - 下载器 界面: 轮子 文件大小 界面:Tkinter 下载功能 :re ...
最新文章
- C# WInForm中 窗体的this.width和this.height的属性值不能大于显示器的最大分辨率
- 什么叫优雅降级和渐进增强
- Xamarin.Android之封装个简单的网络请求类
- SAP CRM WebClient UI上以html格式显示note的问题讨论
- AtCoder 2305 [AGC010D] Decrementing(博弈)
- mysql 字段操作
- Python数据分析中Groupby用法之通过字典或Series进行分组
- Jquery—Jquery异步功能实例
- Python UDP broadcast PermissionError: [Errno 13] Permission denied
- 转动惯量到底是个什么物理量
- c语言结构体memcmp,用memcmp()比较结构体
- Maven配置pom引入本地依赖
- 使用命令行登陆Mysql
- vs2017配置linux连接器失败,Xilinx HLx 2017.1与VS 2017兼容问题解决的方法盘点
- 效率源大容量硬盘检测修复程式 v3.0 光盘版 怎么用
- 【transformer】航空发动机寿命预测
- 简单舒服新UI装逼制作神器微信小程序源码下载支持多种流量主
- Oracle中TO_DATE TO_CHAR格式
- 【系统分析师之路】2010年系统分析师下午案例分析真题
- 记录人生中第一次中勒索病毒