用python解析风行网vip电影播放地址解析,pythonvip,用python解析风行网


用python解析风行网vip电影播放地址解析,通过http请求分析,获取视频最终的cdn播放地址,也就是一个mp4视频。
vip电影想看就看,你懂的。

仅用于学习交流目的,最长24小时后请删除^_^

1.[用python解析风行网vip电影播放地址解析文件] fun.py~3KB

#!/usr/bin/evn python#coding=utf8import sysimport osimport timeimport urllib2import cStringIO, gzipimport lxml.htmlimport reimport jsonimport randomdef createRequest(url, referer = None):    req = urllib2.Request(        urllib2.quote(url.split('#')[0].encode('utf8'), safe = "%/:=&?~#+!$,;'@()*[]"),         headers = {"Accept": "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",                   "Accept-Charset": "GBK,utf-8;q=0.7,*;q=0.3",                   "Accept-Encoding": "gzip",                   "Accept-Language": "zh-CN,zh;q=0.8",                   "Cache-Control": "max-age=0",                   "Connection": "keep-alive",                   "User-Agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2",        })        if referer is not None:         req.add_header('Referer', referer)    return reqdef getContent(url, referer = None):    f = urllib2.urlopen(createRequest(url, referer), timeout = 15)    data = f.read()    if data[:6] == '\x1f\x8b\x08\x00\x00\x00':        data = gzip.GzipFile(fileobj = cStringIO.StringIO(data)).read()    f.close()        return datadef getCdnUrl(apiUrl, referer = None):    content = getContent(apiUrl, referer)    data = json.loads(content)    token = data['token']    for resource in data['fsps']:        fspUrl = resource['url']        if resource['clarity'] == 'super-dvd':            fspUrl = resource['url']    fsp = re.findall("fsp://(\w+)", fspUrl)[0]    if fsp == '':        return None    else:        timestamp = int(time.time())        cdnUrl = 'http://jobsfe.funshion.com/query/v1/mp4/{0}.json?clifz=fun&mac=&tm={1}&token={2}'.format(fsp, timestamp, token)        return cdnUrldef getPlayUrl(cdnUrl, referer = None):    content = getContent(cdnUrl, referer)    data = json.loads(content)    if data['return'] == 'succ':        playUrls = data['playlist'][0]['urls']        return playUrls[random.randint(0, len(playUrls)-1)]    return Noneif __name__ == '__main__':    if len(sys.argv) < 2 or sys.argv[1].startswith('http') is None:        print 'Usage: python fun.py http://www.fun.tv/vplay/m-115946/'        print 'Please input the url to be parse'        sys.exit()    videoUrl = sys.argv[1]    vid = int(re.findall("vplay/m-(\d+)", videoUrl)[0])    apiUrl = 'http://api.fun.tv/ajax/get_webplayinfo/{0}/1/mp4?user=funshion'.format(vid)    cdnUrl = getCdnUrl(apiUrl, videoUrl)    playUrl = getPlayUrl(cdnUrl, videoUrl)    print playUrl

编橙之家文章,

评论关闭