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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Sublime开发python程序的示例代码
Jan 24 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
python学生信息管理系统(初级版)
Oct 17 Python
python绘制简单彩虹图
Nov 19 Python
pyqt5实现登录界面的模板
May 30 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
导致python中import错误的原因是什么
Jul 01 Python
Python基础之Socket通信原理
Apr 22 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 current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
php中关于换行的实例写法
2019/09/26 PHP
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
Vue组件BootPage实现简单的分页功能
2016/09/12 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
python实现简单的文字识别
2018/11/27 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
Python字典底层实现原理详解
2019/12/18 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
Python文件操作基础流程解析
2020/03/19 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
python 贪心算法的实现
2020/09/18 Python
html5 sessionStorage会话存储_动力节点Java学院整理
2017/07/06 HTML / CSS
人资专员岗位职责
2014/04/04 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
Python实现抖音热搜定时爬取功能
2022/03/16 Python