python http get 请求_Python-Http请求库-Requests and AIOHTTP的使用

首先对库进行安装:

pip install aiohttp[speedups]

pip install requests

一、Requests库

Requests 简便的 API 意味着所有 HTTP 请求类型都是显而易见的。

import requests

r = requests.get('https://api.github.com/events')

r = requests.post('http://httpbin.org/post', data = {'key':'value'})

r = requests.put('http://httpbin.org/put', data = {'key':'value'})

r = requests.delete('http://httpbin.org/delete')

r = requests.head('http://httpbin.org/get')

r = requests.options('http://httpbin.org/get')

现在,我们有一个名为r的

content响应的内容,以字节为单位。

cookies服务器发送回的Cookie的CookieJar。

encoding访问r.text时进行编码以进行解码。

headers不区分大小写的响应标题字典。例如,headers['content-encoding']将返回'Content-Encoding'响应头的值。

history

status_code响应的HTTP状态的整数代码,例如404或200。

text响应的内容,以unicode表示。

url响应的最终URL位置。

请求会话:(提供cookie持久性,连接池和配置)

基础用法:

import requests

s = requests.Session()

s.get('http://httpbin.org/get') #

或作为上下文管理器:

with requests.Session() as s:

s.get('http://httpbin.org/get') #

二、AIOHTTP

用于asyncio和Python的异步HTTP客户端/服务器。

主要功能:

客户示例:

import aiohttp

import asyncio

async def fetch(session, url):

async with session.get(url) as response:

return await response.text()

async def main():

async with aiohttp.ClientSession() as session:

html = await fetch(session, 'http://python.org')

print(html)

if __name__ == '__main__':

loop = asyncio.get_event_loop()

loop.run_until_complete(main())

服务器示例:

from aiohttp import web

async def handle(request):

name = request.match_info.get('name', "Anonymous")

text = "Hello, " + name

return web.Response(text=text)

app = web.Application()

app.add_routes([web.get('/', handle),

web.get('/{name}', handle)])

if __name__ == '__main__':

web.run_app(app)

发送请求:

import aiohttp

async with aiohttp.ClientSession() as session:

async with session.get('http://httpbin.org/get') as resp:

print(resp.status)

print(await resp.text())

#同样有以下几种请求

session.post('http://httpbin.org/post', data=b'data')

session.put('http://httpbin.org/put', data=b'data')

session.delete('http://httpbin.org/delete')

session.head('http://httpbin.org/get')

session.options('http://httpbin.org/get')

session.patch('http://httpbin.org/patch', data=b'data')

三、Requests与AIOhttp对比

在发送请求上,Requests为同步库,而AIOHttp为异步库

具体的效率对比可参考:aiohttp与requests效率对比​www.jianshu.com

AIOhttp是AIO家族非常出色的一个库,AIO异步家族发展非常迅猛,近年来又支持了异步HTTP客户端/服务器,发展前途一片光明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值