python链家网高并发异步爬虫and异步存入数据
python链家网二手房异步IO爬虫,使用asyncio、aiohttp和aiomysql
很多小伙伴初学python时都会学习到爬虫,刚入门时会使用requests、urllib这些同步的库进行单线程爬虫,速度是比较慢的,后学会用scrapy框架进行爬虫,速度很快,原因是scrapy是基于twisted多线程异步IO框架。
本例使用的asyncio也是一个异步IO框架,在python3.5以后加入了协程的关键字async,能够将协程和生成器区分开来,更加方便使用协程。
经过测试,平均1秒可以爬取30个详情页信息
可以使用asyncio.Semaphore来控制并发数,达到限速的效果
![](https://upload-images.jianshu.io/upload_images/13406307-63b5bd14dd72e7cf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/13406307-83432c0ff9bcb0a4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/13406307-14a1c8d26f5437ce.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)