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文件字符串转列表时遇到空行的问题
Jul 09 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
java中两个byte数组实现合并的示例
May 09 Python
TensorFlow实现简单卷积神经网络
May 24 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
python对验证码降噪的实现示例代码
Nov 12 Python
python实现贪吃蛇双人大战
Apr 18 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
May 08 Python
python中导入 train_test_split提示错误的解决
Jun 19 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
python 爬取英雄联盟皮肤并下载的示例
Dec 04 Python
pandas中DataFrame重置索引的几种方法
May 24 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 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
js操作iframe父子窗体示例
2014/05/22 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
jQuery+css实现非常漂亮的水平导航菜单效果
2016/07/27 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
vue项目优化之通过keep-alive数据缓存的方法
2017/12/11 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
python 解析html之BeautifulSoup
2009/07/07 Python
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
python3实现随机数
2018/06/25 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
Python爬虫设置代理IP(图文)
2018/12/23 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
实习销售业务员自我鉴定
2013/09/21 职场文书
大学生全国两会报告感想
2014/03/17 职场文书
联谊会主持词
2014/03/26 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
Python中的tkinter库简单案例详解
2022/01/22 Python