为人类提供异步http,协同路由请求。
trip的Python项目详细描述
trip,tornado&;成对请求,一个用于python的异步http库。
简单如请求,trip让你摆脱了烦人的网络阻塞。
python 2.7+中的协同程序可以很简单:
importtripdefmain():r=yieldtrip.get('https://httpbin.org/get',auth=('user','pass'))print(r.content)trip.run(main)
旅行结束了 one hundred requests in one piece of time。
trip的名字来自两个强大的网站包,目的是将它们结合在一起。 trip指的是“成对的龙卷风和请求”,trip。 为了将它们组合在一起,我重用了它们的许多关于结构和处理的代码。 实际上,我只做了很少的努力,使混合物。多亏了 Tornado和 Requests。
通过使用trip,您可以充分利用请求,包括: 具有cookie持久性的会话、浏览器样式的ssl验证、自动内容解码, 基本/摘要身份验证,优雅的密钥/值cookies。 同时,您的请求是协同的,就像使用Tornado的AsynchttpClient一样,网络阻塞将 没问题。
发现很难优化蜘蛛的时间消耗? 使用asyncio http包很棘手吗? 找到了重保管的大蜘蛛架? 试试旅行吧,你不会后悔的!
安装
将其粘贴到您的主机中,享受:
$ python -m pip install trip
文档
高级用法
此处列出了一些高级功能:
在python 3中使用async和await:
importtripasyncdefmain():r=awaittrip.get('https://httpbin.org/get',auth=('user','pass'))print(r.content)trip.run(main)
具有cookie持久性的会话
importtripdefmain():s=trip.Session()r=yields.get('https://httpbin.org/cookies/set',params={'name':'value'},allow_redirects=False)r=yields.get('https://httpbin.org/cookies')print(r.content)trip.run(main)
事件挂钩
importtripdefmain():defprint_url(r,*args,**kwargs):print(r.url)defrecord_hook(r,*args,**kwargs):r.hook_called=Truereturnrurl='http://httpbin.org/get'r=yieldtrip.get('http://httpbin.org',hooks={'response':[print_url,record_hook]})print(r.hook_called)trip.run(main)
超时
importtripdefmain():r=yieldtrip.get('http://github.com',timeout=0.001)print(r)trip.run(main)
代理
importtripproxies={'http':'127.0.0.1:8080','https':'127.0.0.1:8081',}defmain():r=yieldtrip.get('https://httpbin.org/get',proxies=proxies)print(r.content)trip.run(main)
如何贡献
- 你可以开个会跟我分享你的想法。
- 或者用叉子叉这个project,在master分支上自己动手。
- 请编写错误或新功能的演示代码。你知道,代码有帮助。
- 最后,如果你完成了你的工作,并提出一个拉请求,我将在必要的测试后及时合并它。