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中用keys()方法返回字典键的教程
May 21 Python
浅析Python编写函数装饰器
Mar 18 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
Random 在 Python 中的使用方法
Aug 09 Python
Python操作Excel插入删除行的方法
Dec 10 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
关于pytorch中全连接神经网络搭建两种模式详解
Jan 14 Python
解决pyqt5异常退出无提示信息的问题
Apr 08 Python
python 追踪except信息方式
Apr 25 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
Feb 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项目打包方法
2008/02/18 PHP
PHP操作XML作为数据库的类
2010/12/19 PHP
超级实用的7个PHP代码片段分享
2012/01/05 PHP
解析php中eclipse 用空格替换 tab键
2013/06/24 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
从零开始搭建一个react项目开发
2018/02/09 Javascript
vue 设置proxyTable参数进行代理跨域
2018/04/09 Javascript
vue-cli 3.x配置跨域代理的实现方法
2019/04/12 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
Python正则表达式分组概念与用法详解
2017/06/24 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
Python的多维空数组赋值方法
2018/04/13 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
python实现比较文件内容异同
2018/06/22 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
Python @property原理解析和用法实例
2020/02/11 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
2020/03/12 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
自荐信格式
2013/12/01 职场文书
高中生期末评语大全
2014/01/28 职场文书
优秀员工评语
2014/02/10 职场文书
写自荐信的注意事项
2014/03/09 职场文书
学校学习雷锋活动总结
2014/07/03 职场文书
《夸父追日》教学反思
2016/02/20 职场文书
离婚协议书范文2016
2016/03/18 职场文书
Java org.w3c.dom.Document 类方法引用报错
2021/08/07 Java/Android