美文网首页视频网站地址解析下载
美拍视频的地址解析下载

美拍视频的地址解析下载

作者: Maslino | 来源:发表于2016-10-31 00:29 被阅读1451次

    以美拍视频播放页URL http://www.meipai.com/media/596371059 为例,来说说如何得到真实的视频地址。

    在浏览器中打开上述播放页URL,然后在页面空白处右键单击弹出一个菜单,接着点击菜单中的“显示网页源代码”。在网页源代码中,我们就可以找到视频的真实地址了,如下图所示:

    美拍视频真实地址示例

    自动提取美拍视频真实地址的Python脚本如下:

    import requests
    from pyquery import PyQuery as pq
    
    r = requests.get('http://www.meipai.com/media/596371059')
    d = pq(r.content)
    print d('meta[property="og:video:url"]').attr('content')
    

    2017年3月23日更新:
    前面提取到的不再是真实地址,而是加密字符串。其解密方法如下,解密就可以得到真实地址:

    import base64
    
    def decode(encoded_string):
        def getHex(param1):
            return {
                'str': param1[4:],
                'hex': ''.join(list(param1[:4])[::-1]),
            }
    
        def getDec(param1):
            loc2 = str(int(param1, 16))
            return {
                'pre': list(loc2[:2]),
                'tail': list(loc2[2:]),
            }
    
        def substr(param1, param2):
            loc3 = param1[0: int(param2[0])]
            loc4 = param1[int(param2[0]): int(param2[0]) + int(param2[1])]
            return loc3 + param1[int(param2[0]):].replace(loc4, "")
    
        def getPos(param1, param2):
            param2[0] = len(param1) - int(param2[0]) - int(param2[1])
            return param2
    
        dict2 = getHex(encoded_string)
        dict3 = getDec(dict2['hex'])
        str4 = substr(dict2['str'], dict3['pre'])
        return base64.b64decode(substr(str4, getPos(str4, dict3['tail'])))
    

    版权声明
    本文中的代码

    相关文章

      网友评论

      • 05f38e279702:这解密的Python如何转成PHP解密,或者这原理是什么,实在看不懂
      • 1188eb0e62cd:这个解密原理可以讲下么 实在看不懂这个代码
        Maslino: @林海_a889 反编译播放器
        林海_a889:大神你好,如何知道播放器是如何解密的呢
        Maslino: @1188eb0e62cd 把美拍播放器代码翻译成py就行了
      • Vijay:你好,请问你这段解密的代码是 unlicense 的吗?http://unlicense.org/
        就是代码可以被任意修改、复制和传播
        我提了一个PR到 youtube-dl, https://github.com/rg3/youtube-dl/pull/13052
        但是需要你明确这段代码的授权
        Maslino: @Vijay 我觉得至少得注明出处,但是这点似乎不符合unlicense?
        Vijay:@Maslino 可以的。只要有明确声明就可以了
        Maslino:你好!我需要如何做呢,比如我修改文章加上“本文中的代码遵循Unlicense协议”如何?
      • 2fad9480a983:后面那段代码怎么用啊?求告知,多谢!~
        Maslino: @sakya沙加 前段代码打印输出作为参数传入后段代码里面的函数
      • 创罪者:美拍的变了,现在好像是base64了一串密文
        Maslino:解密方法已更新

      本文标题:美拍视频的地址解析下载

      本文链接:https://www.haomeiwen.com/subject/kjguuttx.html