上一篇中介绍了基于asyncio模块的单线程-多任务的异步协程,本篇与aiohttp(支持异步网络请求模块)配合来加速爬取。
aiohttp
概念:支持异步的网络请求模块
- 它是基于asyncio实现的
编写流程:
- 写基本架构:
1 | with aiohttp.ClientSession() as s: |
补充细节:
添加 async 关键字
- 每一个
with
前 加 async。
- 每一个
添加await关键字
- 加到每一步的阻塞操前
- 请求
- 获取响应数据
- 加到每一步的阻塞操前
例子
本例中先在本地搭一个flask服务器,然后对它进行爬取。
首先是flask代码:
1 | # server.py |
接下来写我们的爬虫代码吧:
1 | import asyncio |
实战
待补充!!!