Python爬取视频(其实是一篇福利)
到上面去看了看,地址都是明文的,得,赶紧开始吧。
下载流式文件,requests库中请求的stream设为True就可以啦,文档在此。
先找一个视频地址试验一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
遭遇当头一棒:
1 |
|
这文档也会骗人的么!
看样子是没有实现上下文需要的__exit__方法。既然只是为了保证要让r最后close以释放连接池,那就使用contextlib的closing特性好了:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
程序正常运行了,不过我盯着这文件,怎么大小不见变啊,到底是完成了多少了呢?还是要让下好的内容及时存进硬盘,还能省点内存是不是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
文件以肉眼可见的速度在增大,真心疼我的硬盘,还是最后一次写入硬盘吧,程序中记个数就好了:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
结果就很直观了:
1 2 3 4 |
|
心怀远大理想的我怎么会只满足于这一个呢,写个类一起使用吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
运行:
1 2 3 4 5 |
|
看上去舒服多了。
下面要做的就是多线程同时下载了,主线程生产url放入队列,下载线程获取url:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
|
加了重复下载的判断,至于怎么源源不断的生产url,诸位摸索吧,保重身体!
以上是 Python爬取视频(其实是一篇福利) 的全部内容, 来源链接: utcz.com/z/387066.html