python已协程方式处理任务实现过程


Posted in Python onDecember 27, 2019

这篇文章主要介绍了python已协程方式处理任务实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

#从genent中导入monky模块①
from gevent import monkey
#把程序变成协程的方式运行②
monkey.patch_all()
import gevent,requests,time
#导入requests和time
start = time.time()
#记录程序开始时间
 
url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8个网站封装成列表
 
def get_data(url):
  r = requests.get(url)
  # 用requests.get()函数爬取网站
  print(url, time.time()-start,r.status_code)
 
task_list=[]
# 创建一个空列表
for url in url_list:
  # 用gevent里面的spawn函数创建任务 get_data是方法名,url是参数③
  task=gevent.spawn(get_data,url)
  # 将创建的任务添加到task_list④
  task_list.append(task)
#执行任务列表中的所有任务⑤
gevent.joinall(task_list)
 
end = time.time()
#记录程序结束时间
print(end-start)
#end-start是结束时间减去开始时间,就是最终所花时间。

使用队列,代码如下:

#从genent中导入monky模块①
from gevent import monkey
#把程序变成协程的方式运行②
monkey.patch_all()
import gevent,requests,time
#从gevent库里导入queue模块
from gevent.queue import Queue
#导入requests和time
start = time.time()
#记录程序开始时间
 
url_list = ['https://www.baidu.com/',
'https://www.sina.com.cn/',
'http://www.sohu.com/',
'https://www.qq.com/',
'https://www.163.com/',
'http://www.iqiyi.com/',
'https://www.tmall.com/',
'http://www.ifeng.com/']
#把8个网站封装成列表
#创建队列对象,并赋值给work。
work=Queue()
for url in url_list:
  # 用put_nowait()函数可以把网址都放进队列里。
  work.put_nowait(url)
 
 
def get_data():
  # 当队列不是空的时候,就执行下面的程序。
  while not work.empty():
    # 用get_nowait()函数可以把队列里的网址都取出。
    url=work.get_nowait()
    r = requests.get(url)
    # 用requests.get()函数爬取网站 qsize队列长度
    print(url, work.qsize(),r.status_code)
 
task_list=[]
# 创建一个空列表
# 创建了2个爬虫
for x in range(2):
  # 用gevent里面的spawn函数创建任务 get_data是方法名
  task=gevent.spawn(get_data)
  # 将创建的任务添加到task_list④
  task_list.append(task)
#执行任务列表中的所有任务⑤
gevent.joinall(task_list)
 
end = time.time()
#记录程序结束时间
print(end-start)
#end-start是结束时间减去开始时间,就是最终所花时间。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现子类调用父类的方法
Nov 10 Python
python通过exifread模块获得图片exif信息的方法
Mar 16 Python
介绍Python中的文档测试模块
Apr 28 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
python Tensor和Array对比分析
Jan 08 Python
Python实现序列化及csv文件读取
Jan 19 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Keras实现将两个模型连接到一起
May 23 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
解决pycharm下载库时出现Failed to install package的问题
Sep 04 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
Dec 27 #Python
python操作gitlab API过程解析
Dec 27 #Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 #Python
python使用协程实现并发操作的方法详解
Dec 27 #Python
Python调用.NET库的方法步骤
Dec 27 #Python
IronPython连接MySQL的方法步骤
Dec 27 #Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 #Python
You might like
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
2017/03/17 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
ECMAScript6中Set/WeakSet详解
2015/06/12 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python删除windows垃圾文件的方法
2015/07/14 Python
在Django中创建动态视图的教程
2015/07/15 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
2020/11/17 Python
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
企业行政文员岗位职责
2013/12/03 职场文书
大学生求职信范文
2014/05/24 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
六年级作文之自救
2019/12/19 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
在CSS中使用when/else的方法
2022/01/18 HTML / CSS