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中lambda函数 list comprehension 和 zip函数使用指南
Sep 28 Python
kaggle+mnist实现手写字体识别
Jul 26 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
python matplotlib库绘制散点图例题解析
Aug 10 Python
python实现复制大量文件功能
Aug 31 Python
Pytorch十九种损失函数的使用详解
Apr 29 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
Python中logging日志的四个等级和使用
Nov 17 Python
python3爬虫中引用Queue的实例讲解
Nov 24 Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 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自动生成后台导航网址的最佳方法
2013/08/27 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
PHP常用header头定义代码示例汇总
2020/08/29 PHP
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
js new Date()实例测试
2019/10/31 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
python 接口_从协议到抽象基类详解
2017/08/24 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python实现将excel文件转化成CSV格式
2018/03/22 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
python如何停止递归
2020/09/09 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
公司合作意向书
2014/04/01 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
体育教师个人工作总结
2015/02/09 职场文书
项目合作意向书
2015/05/08 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技