爬取时间2022/8/24
本文从获得视频的m3u8文件开始,
利用异步协程完成一部600M左右,时长90分钟的电影
代码
未加密的6600行的m3u8文件
运行结果
从截图可以看到,代码运行后下载了3300个ts文件.
运行时检测到下载速度最大达到每秒20M
当然,这是凌晨爬取的电影,那个时间段人流量少,如果是白天爬取肯定是做不到这样的速度的.
但这样的代码容易把并发量很小的网站爬挂掉,强烈建议限制并发量.
箭头所指就是需要增加的东西
上图代码我们将semaphore放在了对应的爬取的函数中,
使用async with 将semaphore作为上下文的管理对象.
这样便可以控制进入爬取的最大协程数量为50,
也就是说同时运行的任务(task)数量最大会被控制在5个,
这样就可以给aiohttp限制速度了
注意:控制最大并发量是有上限的,不能超过509,否则程序会报错.(未亲测)
具体设置多少,自己衡量.
比如,设置100就相当于有100个人在同一秒钟内同时向网站发出请求.
写在最后:
用异步协程爬取数据一定要控制并发量,否则于人于己都不好.
---------------------------------------------------
最最最后,用爬虫爬取了一些网站的壁纸,好东西要分享
2K手机壁纸
4K手机壁纸
| 留言与评论(共有 0 条评论) “” |