ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

VIP电影下载秘籍:一键获取vkey解析ts文件

VIP电影下载秘籍:一键获取vkey解析ts文件 在接下来, 我们只需要去获取一个叫做vkey的字符串, 就可以知道那些ts格式文件的地址具体是什么了, 所以我们需要往前面看, 去寻找那个能够返回包含vkey内容的get类型请求。经过比对可以发现, 其内容实际上与在 post 请求里面传递过来的 vkey 是一致的, 基于这一情况, 接下来就应该正式开始进行代码的编写工作了。代码实现要获取vkey, 根据上面的分析我们能够清晰地了解到, 用于发起get请求的网址是。需要下载那些必须拥有会员资格才能观看的电影资源。我是通过输入链接的方式来进行操作, 以便把这些链接拼接到一起, 形成get请求所需要访问的url, 在这样做的时候, 我还顺便使用了某个库来对输入的那些链接进行编码处理, 把代码写出来就是为了让后面的post请求能够方便地使用这些数据。headers1 { User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36, Referer:https://www.administratorm.com/index.php? urlhttps://v.qq.com/x/cover/mzc00200q06w7zx/j0033kbdjsv.html } headers2 {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36} #定义接口链接 api_url https://www.administratorm.com/WANG.WANG/Api.php input_url input(请输入电影url链接:) print(请稍等! ) get_key_url https://www.administratorm.com/WANG.WANG/index.php? urlinput_url parsed_url parse.quote(input_url,safe)在这里我们创建一个会话程序,这个会话程序主要是用来让服务器去记录用户的身份信息, 接着就是发送一个get请求, 通过这种请求方式来获取网页的代码内容, 然后利用re模块去匹配并且找到vkey的具体内容, 这里需要特别注意get请求里面那个等于False的参数情况, 其实我自己也不是特别明白这是什么意思, 因为有的网站会有SSL认证功能, 添加了这个参数就可以直接跳过这些认证步骤, 当然如果添加了此参数的话可能会产生很多警告信息, 这个时候我们就可以使用 .(True) 这种方式来设置成不显示任何警告信息。sess requests.session()vkey get_key(sess,get_key_url)def get_key(sess,get_key_url):logging.captureWarnings(True)response sess.get(get_key_url,headersheaders1,verifyFalse)response.encodingresponse.apparent_encodingcontent response.textvkey re.findall(vkey.*?\(.*?)\,content)[0]return vkey2.先进行表单制作工作, 在成功获取到vkey之后, 咱们接下来就能动手去构造那个专门用来提交post请求的表单了, 由于对应的代码实现起来特别简单, 因此这里就不过多展开详细介绍的具体过程了。datas make_dataform(parsed_url,vkey)def make_dataform(parsed_url,vkey):datas {url:parsed_url,wap:0,ios:0,vkey:vkey,type:}return datas3.我们要发送post请求, 在这里我再次作出一个说明, 因为在之前我提交post请求的时候, 返回的信息是电影的下载地址, 所以我当时获得的url地址就是指向文件的下载地址了, 可是现在再次去提交这个post请求所获取到的结果是m3u8文件。download_url post(sess,datas)def post(sess,datas):response sess.post(api_url,headersheaders2,datadatas)response.encodingresponse.apparent_encodingu json.loads(response.text)return u[url]4.关于下载电影这个事儿, 因为链接各不相同, 所以我把我拿来下载电影的代码放在这里, 当作一个例子来供人参考。down_load(sess,download_url)def down_load(sess,download_url):print(正在准备下载电影)response requests.get(download_url,headersheaders2,verifyFalse)total_size response.headers[Content-Length]print(将要下载的电影大小:{}MB.format(round(int(total_size)/1024/1024,2)))batch_size int(total_size)//100#返回迭代器是将二进制流按大小分割之后的k input(请输入文件路径(C/D):)filename input(请输入保存文件名:)with open(r{}:/电影/.format(k)filename.mp4,wb) as f:i 0for content in response.iter_content(chunk_sizebatch_size):f.write(content)print(\r,#*i 已下载{}%.format(i),end\r,flushTrue)i 1print(下载成功)程序界面咱们把上面的那串代码给包装一下, 具体做法是套上PyQt5这个壳子, 主要目的就是为了让大家看起来更漂亮一点, 再顺手加个小功能。中间那个浏览器的地位有点尴尬, 毕竟Flash已经不能播了, 再加上有些链接还得单独开新标签页才能看, 反正就是打不开, 所以这个浏览器基本就是个摆设, 没什么实际用处, 最后也就图个好看罢了。在这里就不会展开去详谈了, 因为PyQt5这个东西也是属于比较简单的那种, 并且学起来并不费劲儿, 很容易就可以上手把东西搞懂, 要是你要是确实有需要的话, 可以找我来联系。总结这是我平生第一次动笔写博客, 倘若文中的内容有什么不对劲的地方, 恳请您及时指出错误, 同时非常欢迎各界人士前来指正我的谬误, 需要特别说明的是, 这个爬虫项目仅仅被设计用来帮助新手入门学习, 绝对不可以将其用于任何赚取利润的事情上, 要是违反了这项规定, 所有可能出现的严重后果都只能由您自己一个人独自承担。到这里位置, 关于使用爬虫技术来实现vip电影下载的示例代码的文章就已经介绍完毕了, 如果想要了解更多的有关爬虫以及vip电影下载方面的相关内容的话, 可以尝试去查找一下脚本之家此前发布的其他文章, 或者是继续往下翻阅浏览后续所推出的相关文章内容, 希望各位读者在以后的日子里头能够多多支持脚本之家这个平台
返回列表