26行代码一分钟爬取一部电影

爬取时间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 条评论) “”
   
验证码:

相关文章

推荐文章