huanye 发表于 2020-6-6 16:26

搜索+下载番剧代码

本帖最后由 huanye 于 2020-6-6 16:28 编辑

前言
https://static.52pojie.cn/static/image/hrline/1.gif
最近这些日子闲得无聊 便想看动漫《进击的巨人》,然而找了各大网站上的资源,个个网站都不是很清晰(有些还是繁体字看不惯)
然后好兄弟就发给我这些,我便一个一个去试,发现一个app为唧唧的画质还可,不过缺点就是我都有电脑,还用小屏幕看?看不惯手机小屏幕
于是就像通过抓包把视频链接搞来,下载到本地


探索
https://static.52pojie.cn/static/image/hrline/1.gif

然后我用黄鸟(httpcanary)抓包一下


发现并没有防抓包,轻而易举就抓到了数据(视频链接之类的)然后我就打开了FD(fiddler电脑软件),进行抓包
ps:不要问我为什么用FD,因为看数据比较方便


然后获取到了3个接口:
1.搜索接口:http://appapi.lvup.com.cn/jijiapp/search post提交参数:"key"就是搜索名字 "usertoken"这个是账户的,直接填no就ok了
2.番剧信息接口:http://appapi.lvup.com.cn/jijiapp/anime_data post提交参数:"av"就是前面搜索接口会得出每部番的av号 "usertoken"这个是账户的,直接填no就ok了
3.番剧视频接口:https://api.clicli.co/jijiapp/video_play_data post提交参数:"id"就是前面搜索接口会得出每部番的av号 "num"这个是集,第几集的视频链接 "usertoken"这个是账户的,直接填no就ok了
PS:有些仓促 语言组织不够好 不过自己亲手试一下应该可以轻轻松松理解了
代码
https://static.52pojie.cn/static/image/hrline/1.gif
代码得配合idm食用,因为如果用python下载有亿点点慢,所以配合idm食用更香,不过缺点就是下载后的视频名字是乱码
不过我也解决了这个问题,就是用os.rename函数修改文件名字
代码:
import requests,json,re,os,win32con,win32clipboard
def set_text(string):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(win32con.CF_UNICODETEXT, string)
    win32clipboard.CloseClipboard()
    print("已经复制到剪切板")
def searech(name):
    url='http://appapi.lvup.com.cn/jijiapp/search'
    post={"key":name,"usertoken":"no"}
    json=requests.post(url,data=post).json()['video']
    fan={}
    k=0
    print("%s番剧列表%s"%('-'*30,'-'*30))
    for i in json:
      print("[%s]:%s"%(k,i['name']))
      fans={k:{'name':i['name'],'av':i['av']}}
      fan.update(fans)
      k=k+1
    print("%s番剧列表%s"%('-'*30,'-'*30))
    return(fan)
def find(av):
    url='http://appapi.lvup.com.cn/jijiapp/anime_data'
    post={"av":av,"usertoken":"no"}
    json=requests.post(url,data=post).json()
    num=len(json['epi'])
    print("%s番剧参数%s"%('-'*30,'-'*30))
    print("内容:%s\n集数:%s集"%(json['data']['sign'],num))
    print("%s番剧参数%s"%('-'*30,'-'*30))
    return(num)
def findnum(av,num):
    k=1
    all=''
    print("%s番剧集链接%s"%('-'*30,'-'*30))
    for i in range(int(num)):
      data={"id":av,"num":k,"usertoken":"no"}
      url='https://api.clicli.co/jijiapp/video_play_data'
      u=requests.post(url,data=data)
      u=u.json()
      mp4=u['src']
      print(mp4)
      all=all+mp4+"\n"
      k=k+1
    print("%s番剧集链接%s"%('-'*30,'-'*30))
    set_text(all.strip())
    return(all)
def renum(data):
    dir=input('输入视频下载的路径:').replace("\\",'//')+'//'
    nums=re.sub('http(.*)/','',data).strip()+'\n'
    fan=re.findall('(.*?)\n',nums)
    num=1
    for i in fan:
      os.rename(dir+i,dir+"第%s话.mp4"%num)
      num=num+1
    print("%s大功告成%s"%('-'*30,'-'*30))
while True:
    print('''欢迎使用幻夜番剧下载助手
    1.下载番剧
    2.退出程序''')
    x=input('请输入序号进行操作:')
    if x=='1':
      name=input('请输入番剧名称:')
      fan=searech(name)
      if fan=={}:
            print('无此番剧')
            continue
      xx=input('请输入番剧序号:')
      av=fan['av']
      num=find(fan['av'])
      y=input("是否获取链接?(y/n):")
      if y=='n':
            continue
      all=findnum(av,num)
      y=input("是否修改文件名称?(y/n):")
      if y=='n':
            continue
      renum(all)
    if x=='2':
      break
注意修改文件名的时候用的是

比如:D:\番剧\缘之空 这个 注意:后面不用加/或\

最后奉上app:https://lanzouj.com/iFLwOdea8pa

余佳卓 发表于 2020-6-6 17:16

找不到资源怪你自己喽
正巧我最近也在追巨人
给你个1080p全三季的磁力链接
magnet:?xt=urn:btih:PLSPIKCIKCJDMCR2TCMWO3ZPS4DHJU6Y&dn=Shingeki+No+Kyojin+S1%2BS2%2BS3+Part.1%2BPart.2+%5BBD+1920x1080+HEVC+x265+10bit%5D&tr=http%3A%2F%2Ftracker1.itzmx.com%3A8080%2Fannounce&xl=4194304&url=http://tools.bugscaner.com

主骑士 发表于 2020-6-6 16:45

是个狼人

wszbzb 发表于 2020-6-6 16:50

缘之空可还行 是个狼焱

余佳卓 发表于 2020-6-6 17:18


余佳卓 发表于 2020-6-6 17:19

缘之空我也有1920x1080p的,你要不要

huanye 发表于 2020-6-6 17:47

余佳卓 发表于 2020-6-6 17:16
找不到资源怪你自己喽
正巧我最近也在追巨人
给你个1080p全三季的磁力链接


感谢!!!!

Airey 发表于 2020-6-6 18:10

感谢分享~{:1_918:}

zim万岁 发表于 2020-6-6 18:26

余佳卓 发表于 2020-6-6 17:19
缘之空我也有1920x1080p的,你要不要

传个毒云什么的,谢{:1_932:}

余佳卓 发表于 2020-6-6 20:05

zim万岁 发表于 2020-6-6 18:26
传个毒云什么的,谢

嘿嘿嘿稍等稍等
页: [1] 2
查看完整版本: 搜索+下载番剧代码