python 并发下载器实现方法示例
作者:小飞侠v科比 时间:2022-03-31 10:46:00
本文实例讲述了python 并发下载器实现方法。分享给大家供大家参考,具体如下:
并发下载器
并发下载原理
from gevent import monkey
import gevent
import urllib.request
# 有耗时操作时需要
monkey.patch_all()
def my_downLoad(url):
print('GET: %s' % url)
resp = urllib.request.urlopen(url)
data = resp.read()
print('%d bytes received from %s.' % (len(data), url))
gevent.joinall([
gevent.spawn(my_downLoad, 'http://www.baidu.com/'),
gevent.spawn(my_downLoad, 'http://www.itcast.cn/'),
gevent.spawn(my_downLoad, 'http://www.itheima.com/'),
])
运行结果
GET: http://www.baidu.com/
GET: http://www.itcast.cn/
GET: http://www.itheima.com/
111327 bytes received from http://www.baidu.com/.
172054 bytes received from http://www.itheima.com/.
215035 bytes received from http://www.itcast.cn/.
从上能够看到是先发送的获取baidu的相关信息,然后依次是itcast、itheima,但是收到数据的先后顺序不一定与发送顺序相同,这也就体现出了异步,即不确定什么时候会收到数据,顺序不一定
实现多个视频下载
from gevent import monkey
import gevent
import urllib.request
#有IO才做时需要这一句
monkey.patch_all()
def my_downLoad(file_name, url):
print('GET: %s' % url)
resp = urllib.request.urlopen(url)
data = resp.read()
with open(file_name, "wb") as f:
f.write(data)
print('%d bytes received from %s.' % (len(data), url))
gevent.joinall([
gevent.spawn(my_downLoad, "1.mp4", 'http://oo52bgdsl.bkt.clouddn.com/05day-08-%E3%80%90%E7%90%86%E8%A7%A3%E3%80%91%E5%87%BD%E6%95%B0%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93%EF%BC%88%E4%B8%80%EF%BC%89.mp4'),
gevent.spawn(my_downLoad, "2.mp4", 'http://oo52bgdsl.bkt.clouddn.com/05day-03-%E3%80%90%E6%8E%8C%E6%8F%A1%E3%80%91%E6%97%A0%E5%8F%82%E6%95%B0%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%E5%87%BD%E6%95%B0%E7%9A%84%E5%AE%9A%E4%B9%89%E3%80%81%E8%B0%83%E7%94%A8%28%E4%B8%8B%29.mp4'),
])
上面的url可以换为自己需要下载视频、音乐、图片等网址
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/kai46385076/article/details/100069559
标签:python,并发下载器
0
投稿
猜你喜欢
class类在python中获取金融数据的实例方法
2021-03-30 10:18:32
基于django ManyToMany 使用的注意事项详解
2022-10-16 00:29:33
Python实现哲学家就餐问题实例代码
2022-09-20 14:10:49
Python+selenium实现趣头条的视频自动上传与发布
2022-03-23 10:27:43
Python语法详解之decorator装饰器
2021-07-15 23:11:45
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2024-05-03 15:07:40
SQL Server中的SELECT会阻塞SELECT吗
2024-01-25 18:08:30
pip安装库报错[notice] A new release of pip available: 22.2 -> 22.2.2
2021-07-15 15:57:04
Python迭代器Iterable判断方法解析
2023-06-11 15:37:19
vue 开发一个按钮组件的示例代码
2024-04-30 10:27:40
python解释模型库Shap实现机器学习模型输出可视化
2022-04-27 08:00:10
MYSQL实现连续签到功能断签一天从头开始(sql语句)
2024-01-22 16:35:11
用Asp修改注册表
2008-01-04 12:33:00
vue自定义过滤器创建和使用方法详解
2024-05-09 15:17:06
WebStorm 遇到的问题总结
2023-08-31 23:30:00
Python入门必须知道的11个知识点
2023-12-19 05:32:47
MySQL8.0无法远程连接访问的解决方法
2024-01-19 02:55:54
Javascript技术栈中的四种依赖注入小结
2024-04-18 10:54:08
利用Python判断文件的几种方法及其优劣对比
2022-07-03 06:20:02
Python Dataframe常见索引方式详解
2023-06-21 21:03:25