最新公告
  • 欢迎您光临小酒资源吧,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • [python]tk做人人影视资源搜集

    [python]tk做人人影视资源搜集 最后编辑:2020-09-07
    增值服务: 自动发货 使用说明 安装指导 环境配置二次开发BUG修复

    之前发错地方了,违规被删除了….
    我想再试试,如果违规请管理及时删除。谢谢!
    我分享出来是想和大家一起学习,一起讨论,没有其他任何目的!
    暑假闲来无事,看美剧,突然有个想法,嘿嘿!
    先用fiddler 对PC端rrsy抓包 得到了内置api
    搜索:http://pc.zmzapi.com/index.php?g=api/pv3&m=index&client=5&accesskey=519f9cab85c8059d17544947k361a827&a=search&uid=&token=&page=1&limit=30&k+要搜索的名字
    选择:http://pc.zmzapi.com/index.php?g=api/pv3&m=index&client=5&accesskey=519f9cab85c8059d17544947k361a827&a=resource&id=+搜索得到的结果中的你选择的资源的对应的id+&uid=undefined&token=undefined
    然后用了最笨的办法,因为我本来懂得就不多…..
    经过几天的奋战….
    掉了好多头发……
    最终…..

    想要下载的下方有源码下载链接
    本人比较笨所以没有用什么简洁的方式和算法 如果有什么不足请说出来 互相学习
    当然也有好多bug不过我实在是改不了了 希望大家一起努力 一起学习

    [Python] 纯文本查看 复制代码
    import tkinter as tk
    import tkinter.messagebox #用于弹框
    import requests
    import re
    import pyperclip #用于复制
    headers={\’User-Agent\’: \’Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0\’}
    def get_seasons_episodes_addresses(idnum):
    global addresses
    global season_episode
    global seasons_episodes
    s_ename=value_3[-4:-1]
    r_sources=requests.get(\’http://pc.zmzapi.com/index.php?g=api/pv3&m=index&client=5&accesskey=519f9cab85c8059d17544947k361a827&a=resource&id=\’+str(idnum)+\’&uid=undefined&token=undefined\’,headers=headers)
    addresses=re.findall(r\’ss":"([^"]+)\’,r_sources.text)
    r_seasons_episodes_raw=re.compile(r\'(%s).([^.]+)\’ %s_ename ) #正则表达式加入变量
    seasons_episodes_raw=r_seasons_episodes_raw.findall(r_sources.text)
    season_episode=[] #储存季集 数字 例如1023
    seasons_episodes=[] #储存季集 例如s10e23
    seasons=[] #储存季
    episodes=[] #储存集
    for i in range(len(seasons_episodes_raw)-4): #遍历列表 季和集 例如 s10s24
    if \’\’.join(seasons_episodes_raw[i][1])[1:3].isdigit():
    seasons_episodes.append(seasons_episodes_raw[i][1])
    if len(seasons_episodes)>4:
    ufirst_element=re.findall(r\’\\d+\’,seasons_episodes[-1])
    usecond_element=re.findall(r\’\\d+\’,seasons_episodes[-2])
    season_episode.append(\’\’.join(ufirst_element))
    if ufirst_element!=usecond_element: #由于每集都多三个 所以我们选择去掉最后三个
    del seasons_episodes[-2]
    del seasons_episodes[-3]
    del seasons_episodes[-4]
    season_episode=list(set(season_episode))
    season_episode.sort(reverse=True)
    for i in season_episode:
    if len(i)==4 or len(i)==6:
    seasons.append(i[0:2])
    episodes.append(i[2:4])
    else:
    season_episode.remove(i)
    seasons=list(set(seasons))
    seasons.sort(reverse=True)
    return seasons,episodes,addresses
    def print_selection_1():
    s_episodes=[]
    global lb_2
    global value_1
    try:
    value_1 = lb_1.get(lb_1.curselection()) # 获取当前选中的文本
    except:
    tkinter.messagebox.showinfo(\’提示\’,\’请先选择“季”!\’)
    else:
    season=\’\’.join(re.findall(r\’\\d+\’,value_1))
    for i in season_episode:
    if season ==i[0:2]:
    s_episodes.append(i[2:])
    lb_2 = tk.Listbox(window,width=13,height=len(s_episodes))
    lb_2.place(x=200,y=300)
    for k in s_episodes:
    lb_2.insert(\’end\’, \’第\’+str(k)+\’集\’)# 从最后一个位置开始加入值
    var_1.set(value_1) # 为labe_1设置值
    def print_selection_2():
    s_season_episode=[]
    global lb_3
    try:
    value_2 = lb_2.get(lb_2.curselection()) # 获取当前选中的文本
    except:
    tkinter.messagebox.showinfo(\’提示\’,\’请先选择“集”!\’)
    else:
    episode=\’\’.join(re.findall(r\’\\d+\’,value_1))+\’\’.join(re.findall(r\’\\d+\’,value_2))
    lb_3 = tk.Listbox(window,width=50,height=10)
    lb_3.place(x=400,y=300)
    for n in range(len(seasons_episodes)-1):
    if episode==\’\’.join(re.findall(r\’\\d+\’,seasons_episodes[n])):
    s_season_episode.append(addresses[n])
    for m in s_season_episode:
    m=m.replace(\’\\/\’, \’/\’)
    lb_3.insert(\’end\’, str(m))
    var_2.set(value_2) # 为labe_2设置值
    def print_selection_3():
    try:
    value_3 = lb_3.get(lb_3.curselection()) # 获取当前选中的文本
    except:
    tkinter.messagebox.showinfo(\’提示\’,\’请先选择一个地址再点复制哦!\’)
    else:
    pyperclip.copy(value_3)
    tkinter.messagebox.showinfo(\’提示\’,\’复制成功!\’)
    def print_selection_4():
    global var_cname
    global seasons
    global episodes
    global lb_4
    global idnums
    global cnames
    global cname
    global enames
    global ename
    var_cname=entry_explore.get()
    if var_cname==\’\’:
    tkinter.messagebox.showinfo(\’提示\’,\’不能搜索空东西哦!\’)
    else:
    r_id=requests.get(\’http://pc.zmzapi.com/index.php?g=api/pv3&m=index&client=5&accesskey=519f9cab85c8059d17544947k361a827&a=search&uid=&token=&page=1&limit=30&k=\’+var_cname,headers=headers)
    idnums=re.findall(r\’id":"([^"]+)\’,r_id.text)
    cnames=re.findall(r\’cnname":"([^"]+)\’,r_id.text)
    enames=re.findall(r\’enname":"([^"]+)\’,r_id.text)
    lb_4 = tk.Listbox(window,width=40, height=6)
    if len(idnums)!=1:
    for cname in cnames:
    ename= enames[cnames.index(cname)]
    lb_4.insert(\’end\’,str(eval("u\’"+cname+"\’"))+\’ (\’+ename+\’)\’)
    else:
    cname=cnames[0]
    ename=enames[0]
    lb_4.insert(\’end\’,str(eval("u\’"+cname+"\’"))+\’ (\’+ename+\’)\’)
    lb_4.place(x=100,y=140)
    def print_selection_5():
    global value_3
    global lb_1
    global lb_3
    global idnum
    try:
    value_3 = lb_4.get(lb_4.curselection())
    except:
    tkinter.messagebox.showinfo(\’提示\’,\’请先选择一个哦!\’)
    else:
    var_3.set(value_3)
    for i in idnums:
    #print(i)
    k=idnums.index(i)
    if str(eval("u\’"+cnames[k]+"\’"))+\’ (\’+enames[k]+\’)\’== value_3:
    idnum=i
    seasons,episodes,addresses=get_seasons_episodes_addresses(idnum)
    if len(seasons)!=0:
    lb_1 = tk.Listbox(window,width=13,height=len(seasons))
    for item in seasons:
    lb_1.insert(\’end\’, \’第\’+str(item)+\’季\’)
    lb_1.place(x=10,y=300)
    else:
    r_moves=requests.get(\’http://pc.zmzapi.com/index.php?g=api/pv3&m=index&client=5&accesskey=519f9cab85c8059d17544947k361a827&a=resource&id=\’+idnum+\’&uid=undefined&token=undefined\’,headers=headers)
    addresses_moves=re.findall(r\’ss":"([^"]+)\’,r_moves.text)
    lb_3 = tk.Listbox(window,width=50,height=10)
    #lb_3.grid(column=5,row=3)
    lb_3.place(x=400,y=300)
    for i in addresses_moves:
    i=i.replace(\’\\/\’, \’/\’)
    lb_3.insert(\’end\’, str(i))
    tkinter.messagebox.showinfo(\’提示\’,\’您选择的资源可能没有!如果有,地址已经显示在下方!\’)
    if __name__=="__main__":
    window = tk.Tk()
    window.title(\’人人影视资源链接解析\’)
    window.geometry(\’800×760\’)
    var_1 = tk.StringVar() # 创建变量,用var1用来接收鼠标点击具体选项的内容
    var_2 = tk.StringVar()
    var_3=tk.StringVar()
    var_name = tk.StringVar()
    var_name.set(\’老友记\’)
    entry_explore = tk.Entry(window,textvariable=var_name,font=(\’Arial\’, 12),width=16)
    entry_explore.place(x=150,y=110)
    bu_4= tk.Button(window, text=\’搜索\’,font=(\’Arial\’,12), width=8,height=1,command=print_selection_4)
    bu_4.place(x=310,y=107) #定位
    bu_5= tk.Button(window, text=\’确定\’,font=(\’Arial\’,12), width=8,height=1,command=print_selection_5)
    bu_5.place(x=700,y=107) #定位
    l_3 = tk.Label(window, text=\’请在此处搜索:\’,bg=\’green\’, fg=\’white\’,font=(\’Arial\’, 12), width=14, height=1)
    l_3.place(x=10,y=110)
    l_5 = tk.Label(window, text=\’\’\’
    使用方法:在搜索框输入你想搜索的资源名字,下方会出现搜索到的结果,选择一个,然后点击确定。如果为
    电视剧,则会出现相应的季和集(由于api内资源混乱和本人技术有限可能出现错位现象,例如生活大爆炸等。
    如果是电影,资源地址则会出现在下方。如果是空白那就代表还没有资源,比如变形金刚5。\’\’\’,bg=\’green\’, fg=\’white\’,font=(\’Arial\’, 12), width=89, height=5)
    l_5.place(x=0,y=0)
    l_6 = tk.Label(window, text=\’\’\’
    资源说明:ed2k–>电驴(也可以用迅雷下载)
    禁止使用网挣网盘,禁止使用网挣网盘–>诚通网盘
    miwifi.com–>小米路由
    http://url.cn/–>微云
    百度网盘,微云和搜狐视频的大多失效….\’\’\’,bg=\’green\’, fg=\’white\’,font=(\’Arial\’, 12), width=43, height=6)
    l_6.place(x=400,y=140)
    l_1 = tk.Label(window, textvariable=var_1, bg=\’green\’, fg=\’white\’, font=(\’Arial\’, 12), width=10, height=1)
    #l_1.grid(column=1,row=2)
    l_1.place(x=10,y=270)
    l_2 = tk.Label(window, textvariable=var_2, bg=\’green\’, fg=\’white\’, font=(\’Arial\’, 12), width=10, height=1)
    #l_2.grid(column=3,row=2)
    l_2.place(x=200,y=270)
    l_4 = tk.Label(window, textvariable=var_3, bg=\’green\’, fg=\’white\’, font=(\’Arial\’, 12), width=30, height=1)
    l_4.place(x=400,y=110)
    bu_1= tk.Button(window, text=\’选择季\’, font=(\’Arial\’, 12), width=8,height=1,command=print_selection_1)
    #bu_1.grid(column=2,row=2) #第n列 第m行
    bu_1.place(x=110,y=268) #定位
    bu_2= tk.Button(window, text=\’选择集\’, font=(\’Arial\’, 12), width=8,height=1,command=print_selection_2)
    #bu_2.grid(column=4,row=2) #第n列 第m行
    bu_2.place(x=300,y=268)
    bu_3= tk.Button(window, text=\’复制该地址\’, font=(\’Arial\’, 12), width=10,height=1,command=print_selection_3)
    bu_3.place(x=600,y=268)#定位
    window.mainloop()

    源码:[url=]rrys.rar[/url]

    TIM截图20190806143702.jpg

    rrys.rar

    2019-8-6 14:48 上传

    猜你在找

    1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!603313839@qq.com
    2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
    3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
    4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!

    小酒资源吧 » [python]tk做人人影视资源搜集

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    小酒资源吧
    一个高级程序员模板开发平台
    • 2020-09-07Hi,初次和大家见面了,请多关照!

    Hi, 如果你对这款模板有疑问,可以跟我联系哦!

    联系客服
    • 2248会员总数(位)
    • 4394资源总数(个)
    • 9本周发布(个)
    • 0 今日发布(个)
    • 338稳定运行(天)

    提供最优质的资源集合

    立即查看 了解详情
  • 2020 XiaoJiu8.cn - & WordPress Theme. All rights reserved 黔ICP备17003460号-5

  • XML地图 | 站长导航
         
    升级SVIP尊享更多特权立即升级