本帖最后由 彳、亍 于 2021-6-8 10:14 编辑
网站:http://www.imomoe.la/
目的:显示下载链接,不带下载
说明:
这个网站其实就是调用存储在其他网站上的资源,目前发现有3家:pptv、优酷和土豆
其中有些(很多)好像没了,表现在网页上也不能播,所以无法下载
使用方法:
复制某一具体播放页到程序中,显示整部番下载链接
思路:
http://www.imomoe.la/player/5040-0-0.html
用idm抓下载链接,搜索,注意到
看请求(他大意了,这个请求没有cookie)
搜vid,注意到
明显是播放地址,看请求(话说letv不是乐视吗)
经调试,后面的小数无关紧要,5040是上面的地址里的,搜索176,注意到
至此,优酷的下载搞定了,但这边还有两种土豆的
这种纯数字的方法同上
http://www.imomoe.la/player/1798-0-0.html
注意到
跳转,抓下载链接
http://aliyun.vod.pptv.com/0/0/102400/01b4965fc6e4acf38c761251c1c5b7eb.mp4?h5vod.ver=2.1.5&k=3f50490f3a7d5f1745cff6fe4f9577d3-ac59-1623129343&vvid=39c134ee-68e7-c337-28d0-e9307f352ed1&type=mhpptv&o=0&sv=4.1.18
其中vvid、h5vod.ver、o、sv无影响
拖动进度条,获取其他分段,k值不改变
http://aliyun.vod.pptv.com/1/16501760/21239808/01b4965fc6e4acf38c761251c1c5b7eb.mp4?h5vod.ver=2.1.5&k=3f50490f3a7d5f1745cff6fe4f9577d3-ac59-1623129343&vvid=39c134ee-68e7-c337-28d0-e9307f352ed1&type=mhpptv&o=0&sv=4.1.18
http://aliyun.vod.pptv.com/2/3087360/21484544/01b4965fc6e4acf38c761251c1c5b7eb.mp4?h5vod.ver=2.1.5&k=3f50490f3a7d5f1745cff6fe4f9577d3-ac59-1623129343&vvid=39c134ee-68e7-c337-28d0-e9307f352ed1&type=mhpptv&o=0&sv=4.1.18
不难看出,这个012是分段,后面两个数好像没什么影响
接下来这个接口参考了https://www.52pojie.cn/thread-1169480-1-1.html
https://web-play.pptv.com/webplay3-0-12407631.xml?o=0&version=6&type=mhpptv&appid=pptv.web.h5&appplt=web&appver=4.0.7&cb=a
然后后面都差不多
代码写得很乱
[Python] 纯文本查看 复制代码 from requests import get
import json
import re
mainurl = 'http://www.imomoe.la'
url1 = input() # http://www.imomoe.la/player/5040-0-0.html
ex = '<script type="text/javascript" src="(/playdata/.*?.js).*?"></script>'
ua = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
ppurl = 'http://v.pptv.com/show/'
dllist = []
headers = {
'Referer': url1,
'User-Agent': ua
}
resp = get(url=url1)
url2 = re.findall(ex, resp.text, re.S)[0]
url2 = mainurl + url2
resp = get(url=url2, headers=headers)
tmp = re.findall(b'(\\[.*\\])', resp.content)[0]
dat = eval(tmp.decode('gbk'))
for l in dat:
if l[0] == '优酷':
for i in l[1]:
vurl = re.findall('\$(.*?)\$', i)[0]
if len(vurl) < 40:
resp1 = get(url='https://v.jialingmm.net/mmletv/mms.php', params={'vid': vurl, 'type': 'letv'})
vurl = re.findall('var video = \'(.*?)\' ;', resp1.text, re.S)
dllist.append(vurl)
break
if l[0] == '土豆' and re.findall('\$(.*?)\$', l[1][0])[0].isdigit() == False:
for i in l[1]:
print(i)
vurl = re.findall('\$(.*?)\$', i)[0]
resp1 = get(url=ppurl+vurl+'.html', headers={"User-Agent": ua})
id = re.findall('var webcfg = [{]"id":(.*?)[,]', resp1.text, re.S)[0]
resp2 = get(url=f'https://web-play.pptv.com/webplay3-0-{id}.xml?o=0&version=6&type=mhpptv&appid=pptv.web.h5&appplt=web&appver=4.0.7&cb=a', headers={"User-Agent": ua})
dat = json.loads(resp2.text[2:-4])
server = dat['childNodes'][3]['childNodes'][0]['childNodes'][0]
rid = dat['childNodes'][-4]['rid']
sum = len(dat['childNodes'][-4]['childNodes']) - 1
kk = dat['childNodes'][-5]['childNodes'][-1]['childNodes'][0].split('%26')[0]
ll = []
for i in range(sum):
vurl1 = f"https://{server}/{i}/0/1/{rid}?k={kk}&type=mhpptv"
ll.append(vurl)
dllist.append(ll)
break
print(dllist)
print(len(dllist))
测试图
|