专栏首页TeamsSix的网络空间安全专栏Python实例 | 批量下载斗罗大陆高清视频

Python实例 | 批量下载斗罗大陆高清视频

0x00 下载视频下载脚本

首先来到我的Github主页,找到Douluo-download项目,点开找到下载地址,使用git clone对其进行下载

git clone https://github.com/teamssix/Douluo-download.git

0x01 安装python所需要的库

cd Douluo-download/
pip3 install -r requirements.txt

0x02 执行Python程序

python3 douluo.py

程序在执行的时候会感觉比较慢,其实不是卡了,而是程序正在下载视频,当下载好一个视频才会弹出一条信息。

0x03 查看成果

执行ls命令可以看到刚才下载的视频

播放看看能不能正常播放

可以看到是可以正常播放的,不过我想试试最新的一集,也就是看看需要会员的视频能不能下载下来,当前最新的一集是55集,那我们下载试试。

0x04 继续尝试下载VIP视频

知道下载那一集后还需要修改一下代码才行,将原来下载视频的代码简单做一下修改就行

执行看看

看来不行,只能下载到预告片,接下来就对代码就行简单的介绍吧

0x05 代码简单介绍

1、第一部分:导入库设定变量

#导入库设定变量
import os
import requests
from bs4 import BeautifulSoup
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36'}
home_url ='https://v.qq.com/x/cover/m441e3rjq9kwpsc/m00253deqqo.html'

这部分就是导入一些库和一些设定的变量什么的,比如headers、url什么的,没什么好说的

2、第二部分:爬取每个视频的id

#爬取每个视频的id
douluohome = requests.get(home_url,headers=headers)
douluohome.encoding='utf-8'
douluosoup = BeautifulSoup(douluohome.text,'html.parser')
douluolist = douluosoup.select('.mod_episode')[0].select('a')

这里用到了BeautifulSoup4库,先requets获取页面信息,用BeautifulSoup4去对页面html进行解析,最后找到我们想要的东西,这里是清洗出每个视频的ID

3、第三部分:合成下载链接

#合成下载链接
lists = []
for i in range(len(douluolist)):
    lists.append('https://v.qq.com'+douluolist[i]['href'])

很简单的一个处理,将上一步获取的视频的id加到v.qq.com后面,生成视频的播放链接

4、第四部分:开始下载视频

#开始下载视频
for i in range(len(lists)):
    try:
        print(os.popen('you-get {}'.format(lists[i])).read()) #视频会下载到当前目录
    except:
        pass
    continue

这部分其实也没有什么东西,有了每个视频的播放链接后,直接使用工具就可以下载了,这里使用的是利用os库调用you-get命令进行下载的,最后将you-get命令的显示结果传回终端。

0x06 总结

总的说来,其实Python主要就是起到爬虫作用,爬取每个视频的播放链接,最后使用you-get对视频进行下载,没有什么太大的难度,所以权当练练手了,另外点击阅读原文可观看本文视频演示。


本文分享自微信公众号 - TeamsSix(OldCat0111),作者:Teamssix

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python3学习笔记 | 十、Python的类型与运算-其他

    集合的元素可以是不可变对象:数字、字符串、元祖、frozenset。集合里的元素是不重复的。

    TeamsSix
  • CS学习笔记 | 1、如何搭建自己的渗透测试环境

    第一次接触CS的时候,是有人在群里发了一个CS最新版的安装包,当时第一反应,CS ???

    TeamsSix
  • 经验总结 | 解决 BurpSuite Pro v2020.1 版本中文乱码问题

    之前在我的公众号分享了 BurpSuite Pro v2020.1 版本,但是在使用过程中发现总是会有中文乱码的情况出现。

    TeamsSix
  • 简单一步,轻松下载B站视频 | 实用技能get

    https://www.bilibili.com/video/av57221534

    AI算法与图像处理
  • 关于 DevOps,你还应该知道这些

    在《关于 DevOps ,咱们聊的可能不是一回事》中我所听到的 DevOps 四类概念(文章链接:关于 DevOps ,咱们聊的可能不是一回事) 分别是: De...

    DevOps时代
  • Jekyll-Admin-Mac 开发纪要-左侧菜单栏

    本文章文字大约 4500字,大概花费 10分钟阅读。本文章设计的图片比较多,流量党慎入!。

    君赏
  • android视频系列:视频解码篇--android上视频播放的实现

    前言 要开始正儿八经地写视频系列文章了。思来想去,从播放器入手,再合适不过了。视频文件,只有播放出来,才显示出了意义;只有播放出来,才暴露出各种问题。先理解播放...

    天天P图攻城狮
  • Carol Carpenter:DevOps的真正价值

    【编者按】Carol Carpenter是Elasticbox的CEO,本文隶属Leadership Suite(企业高层访谈)的一部分,访谈的内容主要根据De...

    CSDN技术头条
  • 在微服务世界度量DevOps,你准备好了吗?

    1.无度量不DevOps DevOps的推广打破了开发,运维之间的壁垒。全员以产品交付为目标,提高效率,完成业务。久而久之消费者就会形成一个潜意识就是:买了这个...

    yuanyi928
  • #DevOps的前世今生# 1. DevOps编年史

    DevOps的历史要从一个比利时的独立IT咨询师说起。这位咨询师的名字叫做Patrick Debois,他喜欢从各个角度研究IT组织。

    顾宇

扫码关注云+社区

领取腾讯云代金券