博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础===基于requests模块上的协程【trip】
阅读量:6262 次
发布时间:2019-06-22

本文共 1319 字,大约阅读时间需要 4 分钟。

今天看博客get了一个有趣的模块,叫做 trip     #(pip install  trip)

兼容2.7版本

基于两大依赖包:TRIP: Tornado & Requests In Pair

先看一下simple code:

import trip@trip.coroutinedef main():    r = yield trip.get('http://www.baidu.com/‘)    print(r.content)trip.run(main)

 

于是又做了一个比较:

 

import time, functoolsimport requests,tripdef timeit(fn):    start_time = time.time()    fn()    return time.time() - start_timeurl = 'https://www.baidu.com/'times = 100def fetch():    r = [requests.get(url) for i in range(times)]    return r@trip.coroutinedef  async_fetch():    r = yield[trip.get(url) for i in range(times)]    raise trip.Return(r)print("[+]Non-trip cost: %ss" % timeit(fetch))print("[+]Trip cost: %ss" % timeit(functools.partial(trip.run,async_fetch))) #result #[+]Non-trip cost: 14.9129998684s #[+]Trip cost: 1.83399987221s

14.9秒和1.8秒的差距,效果显而易见!

 

在爬虫中的比较,普通爬虫:

import requestsurl = 'http://httpbin.org's = requests.Session()def fetch(times=10):    s.get('%s/cookies/set?name=value' % url)    r = [s.get('%s/get' % url) for i in range(times)]    print rfetch()

加入trip优化后的:

import tripurl = 'http://httpbin.org's = trip.Session()@trip.coroutinedef fetch(times=10):    yield s.get('%s/cookies/set?name=value' % url)    r = yield [s.get('%s/get' % url) for i in range(times)]    print rtrip.run(fetch)

在原基础上更改不大。

 

转载于:https://www.cnblogs.com/botoo/p/7808316.html

你可能感兴趣的文章
数据扩展性探讨和总结--转
查看>>
spider RPC高级特性
查看>>
C# 导出资源文件到硬盘
查看>>
修复 ThinkPHP3.2.3 抛出异常模块的一个BUG,关闭字段缓存功能
查看>>
更改MySQL数据库的编码为utf8mb4
查看>>
android自动化测试--appium运行的坑问题及解决方法
查看>>
mysql Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
查看>>
TeamCity : .NET Core 插件
查看>>
Python 爬虫知识点 - XPath
查看>>
由数量众多照片拼贴而成的马赛克图片
查看>>
如何在linux Shell脚本里面把一个数组传递到awk内部进行处理
查看>>
共模电感的原理以及使用情况
查看>>
GridLookUpEdit多列模糊查询最简单方式 z
查看>>
memcache与Redis
查看>>
Python27中Json对中文的处理
查看>>
结构,是指事物自身各种要素之间的相互关联和相互作用的方式
查看>>
andoid电阻触摸移植
查看>>
备忘录模式
查看>>
U盘安装CentOS 7卡住在 mounting configuration file system
查看>>
《Java设计模式》之装饰模式
查看>>