前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初识aiohttp

初识aiohttp

作者头像
y191024
发布2022-09-20 19:16:56
2340
发布2022-09-20 19:16:56
举报
文章被收录于专栏:睡不着所以学编程

上一篇写到了异步爬虫的操作,但是由于requests模块是同步模块会中止异步操作,所以这里要引入aiohttp。

首先是要在终端内输入

pip install aiohttp

接着就是导包,这些是这次要用到的包

代码语言:javascript
复制
import asyncio
import time
import aiohttp

接下来的操作和之前的模拟异步操作没什么区别,唯一不同的地方就是在发请求的地方。

代码语言:javascript
复制
import asyncio
import time
import aiohttp


print(time.strftime("%X"))
urls = [
    "http://127.0.0.1:5000/bobo", "http://127.0.0.1:5000/coco", "http://127.0.0.1:5000/moly"
]

async def get_page(url):
    async with aiohttp.ClientSession() as session:
        #参数:(url,headers,params/data,proxy="字符串") post请求同理
        async with await session.get(url) as response:
            # text()返回字符串形式的响应数据
            # read()返回二进制形式的响应数据
            # json()返回的是JSON形式的响应数据
            # 注意:在获取响应数据之前一定要使用await手动挂起
            page_text = await response.text()
            print(page_text)

    print(url, "下载完成")

tasks = []
for url in urls:
    task = get_page(url)
    tasks.append(task)

async def main():
    await asyncio.wait(tasks)

if __name__ == '__main__':
    asyncio.run(main())
    print(time.strftime("%X"))

运行结果:

总共耗时2秒。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 睡不着所以学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档