博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017最新教程--如何下载美拍视频
阅读量:5978 次
发布时间:2019-06-20

本文共 1876 字,大约阅读时间需要 6 分钟。

需求:

最近有某朋友需要下载美拍视频并提取视频当中的音频。地址为http://www.meipai.com/media/457569009。

方法:

第一次看美拍的视频,网上搜索一下,发现有一些方法说看源代码中,可以看到视频地址。

打开分析后发现视频地址,发现url并不是直观的url,以前的方法已经不能使用了。

地址为:8141aHR0chDovL212dmlkZW8xMS5tZWl0dWRhdGEuY29tLzU2OGI3NzQyODc2MzY2MTQ4Lm1w8vwYNA==

判定为base64加密,对数据进行解密

发现解密后完全不认识,但是能看到htt的字样,那说明在base64的过程中还做了其他的处理(可能进行了移位等操作)

此时不能放弃,我们多次请求该网页后,发现url的base64值是不同的,这里应该就是对url在base64编码之前进行了某种移位的操作(猜测,具体没有去验证)。

多次请求后,发现如下

可以看到解码后的url为较正常的,我们尝试一下mvvideo11.meitudata.com/568b7742876366148.mp4

确实就是视频的真实地址,丢到下载器里面下载即可。

脚本:

 lcamry格言:手工超过三分钟的活就要脚本自动化实现。

#!/usr/bin#-*- coding: utf-8 -*-#DATA:2017年5月20日#AUTHOR:lcamry#blog:http://www.cnblogs.com/lcamry#link:#qq:646878467#usag:python download-meipai-video.py http://www.meipai.com/media/730173228import sys,osimport urllib2import base64try:    from lxml import htmlexcept ImportError:    raise SystemExit("lxml module is wrong,please execute:pip install lxml")class submain():    def __init__(self,submain):        self.submain = submain        self.sublist = []    def get_sourceurl(self):        for i in range(0,20):            scan_data = urllib2.urlopen(self.submain).read()            html_data = html.fromstring(scan_data)            submains = html_data.xpath("//span//@data-video")            self.sublist.extend(submains) #       print self.sublist    def scan_domain(self):        self.get_sourceurl()        return list(set(self.sublist))if __name__ == '__main__':    domain = sys.argv[1]    submain = submain(domain).scan_domain()    for line in  submain:        if len(line) % 4 ==0:            try:                print base64.decodestring(line)            except:                continue

 

执行结果下:

从上图可以看到mvvideo11.meitudata.com/568b7742876366148.mp4这个地址就是视频的完整地址,此时我们用浏览器访问一下,视频地址正确。

notice:

需要说明的是,我们此处是对URL相当于爆破的,所以在一次执行后,可能没有正确的结果,此时多执行几次,每次返回的结果是不同的,然后自己判断返回的地址中就可以找到正确的地址。

 

转载于:https://www.cnblogs.com/lcamry/p/6883469.html

你可能感兴趣的文章
Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建(转)
查看>>
从头开始学JavaScript (九)——执行环境和作用域
查看>>
ConcurrentHashMap中的2的n次方幂上舍入方法(转)
查看>>
HDOJ/HDU 2087 剪花布条(indexOf()应用~~)
查看>>
JavaScript使用自定义事件实现简单的模块化开发
查看>>
正确把控seo优化工作流程
查看>>
如何利用【百度地图API】,制作房产酒店地图?(上)——制作自定义标注和自定义信息窗口...
查看>>
CES后遗症:物联网设备数据安全问题成焦点
查看>>
联手云计算核心技术开发,BoCloud与中科院软件所战略合作
查看>>
2017年背景下的SSD选购技巧有哪些变化?
查看>>
2016年的数据存储和管理的成本将何去何从?
查看>>
Airpods 并非无用,而是苹果借助语音交互布局物联网的新“棋子”
查看>>
项目总结:数据迁移测试
查看>>
你有足够的勇气改变不良的数据习惯吗?
查看>>
SQL中存储过程的创建和使用
查看>>
荷兰政府:保证不强制在任何产品中留有后门
查看>>
编写单元测试的10条理由
查看>>
LINUX-SAMBA服务配置
查看>>
图像处理------光束效果
查看>>
剑指offer 面试题6:重建二叉树
查看>>