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 Django(图文)
Nov 04 Python
python如何实现excel数据添加到mongodb
Jul 30 Python
如何将python中的List转化成dictionary
Aug 15 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
5款Python程序员高频使用开发工具推荐
Apr 10 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
Django 批量插入数据的实现方法
Jan 12 Python
详解Python3中的 input() 函数
Mar 18 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
python基础之匿名函数详解
Apr 21 Python
Python中22个万用公式的小结
Jul 21 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
基于文本的访客签到簿
2006/10/09 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
解析link_mysql的php版
2013/06/30 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
js中判断控件是否存在
2010/08/25 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
JS+CSS简单树形菜单实现方法
2015/09/12 Javascript
jquery validate demo 基础
2015/10/29 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
详解cordova打包成webapp的方法
2017/10/18 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
express启用https使用小记
2019/05/21 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
Python批处理更改文件名os.rename的方法
2018/10/26 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
详解python中*号的用法
2019/10/21 Python
主管会计岗位职责
2014/03/13 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
2014年教育工作总结
2014/11/26 职场文书
优秀班主任推荐材料
2014/12/17 职场文书
党员个人自我评价
2015/03/03 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
民事辩护词范文
2015/05/21 职场文书
学习经验交流会总结
2015/11/02 职场文书