爬虫(九十六)aiohttp 入门指南

本文介绍了Python的aiohttp库,它是一个基于asyncio的异步HTTP客户端/服务端库。文章涵盖了如何在URL中传递参数、读取响应内容、自定义Headers和Cookie、使用代理等客户端功能,并提供了同步和异步的示例代码,展示了aiohttp与asyncio结合使用的优势。
摘要由CSDN通过智能技术生成

原来今天是清明节啊,自从大学开始已经好几年清明节,中秋节没回家了,感觉没多大意思了,不知道是书读得越多,越没有人情味,还是这些都太麻烦了,还是已经都没有小时候那种感觉了,哎,大事终会过去,凡事看开,无法解决就去承受,变得坚韧,不要抱怨,以后可能会连家乡这个概念也会越来越模糊了,甚至直至消失不见了,悲哀啊

 

aiohttp是一个为Python提供异步HTTP 客户端/服务端编程,基于asyncio(Python用于支持异步编程的标准库)的异步库

核心功能:

1. 同时支持客户端使用和服务端使用

2. 同时支持服务端WebSockets组件和客户端WebSockets组件,开箱即用

3. web服务器具有中间件,信号组件和可插拔路由的功能

aiohttp库安装:

$ pip install aiohttp

你可能还想安装更快的cchardet库来代替chardet进行解码: 

$ pip install cchardet

对于更快的客户端API DNS解析方案,aiodns是个很好的选择,极力推荐: 

$ pip install aiodns


客户端:

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://httpbin.org/headers")
        print(html)

asyncio.run(main())


"""输出结果:
{
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "Python/3.7 aiohttp/3.6.2"
  }
}
"""

这个代码是不是很简单,一个函数用来发起请求,另外一个函数用来下载网页

服务器端

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)

运行这个代码,然后访问http://127.0.0.1:8080就可以看到你的网站了,很 基础的一个网页,你可以在后面跟上你的名字

博客
v8worker
05-08 2890
05-06 2869
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值