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 pygame安装过程笔记
Jun 05 Python
用python实现百度翻译的示例代码
Mar 09 Python
Python使用gRPC传输协议教程
Oct 16 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
Python操作rabbitMQ的示例代码
Mar 19 Python
Django之模板层的实现代码
Sep 09 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
python音频处理的示例详解
Dec 23 Python
python获取带有返回值的多线程
May 02 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
用Javascript实现UTF8编码转换成gb2312编码
2006/12/22 Javascript
JS模拟多线程
2007/02/07 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
jquery实现tr元素的上下移动示例代码
2013/12/20 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
浅析javascript的return语句
2015/12/15 Javascript
Bootstrap创建可折叠的组件
2016/02/23 Javascript
Move.js入门
2017/02/08 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
从零学Python之hello world
2014/05/21 Python
Django的信号机制详解
2017/05/05 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python实现k-means聚类算法
2018/02/23 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
服务员自我评价
2014/01/25 职场文书
求职信标题怎么写
2014/05/26 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers