保存到桌面加入收藏设为首页
问题哥
当前位置:首页 > 资源分享

【热门】【最新】巴士盘一键下载无需等待秒下懂的都懂已绕过网赚网盘收费下载

2021-04-11 17:08:20   问题哥   来源网络   1502   0
巴士盘一键下载无需等待秒下懂的都懂已绕过网赚网盘收费下载

功能特点:
巴士盘出了名的恶心,普通用户想要下载非常麻烦,时不时就等待xx秒后,或者限速.要么就是广告一大堆找不到下载按钮,有了这个脚本下载将不是难题.只需要找好资源,,复制链接进去就ok了.

#全部源码

import requests, bs4, json, time, re, os
from sys import stdout
 
 
class BaShiPan():
    def __init__(self):
        # 协议头 vip cookies
        self.V_Cookies = f'UM_distinctid=16e45e3c0040-0e9d7e056215bb-5f4e2917-144000-16e45e3c0052b1; CNZZDATA1278068732=1786585831-1573129385-%7C{int(time.time())}; view_stat=1 ;'
        self.headers = {
            'Connection': 'keep-alive',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'Referer': 'http://www.tadaigou.com/file/QUEzNDQyMQ==.html',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36',
            'Upgrade-Insecure-Requests': '1',
            'Host': 'www.tadaigou.com',
            'cookie': self.V_Cookies
        }
        self.path = "./down/"
        try:
            os.mkdir(self.path)
        except:
            pass
 
    def get_down_file_info(self, url):
        '''
        获取文件信息
        :return: 返回文件信息字典
        '''
        file_info = {}
        # 访问目标页面------------------------------------------
        self.res = requests.get(url, headers=self.headers)
        self.V_Cookies = self.V_Cookies + 'PHPSESSID=' + self.res.cookies.get_dict()['PHPSESSID']
        self.headers['cookie'] = self.V_Cookies
        self.headers['Referer'] = url
        # 获取信息
        ''.replace
        file_info['id'] = self.get_str_center(self.res.text, 'add_ref(', ');')[-1][-1].replace(')', '').replace('(', '')
        file_info['name'] = \
        self.get_str_center(self.res.text, '<span class="down_one_lf_tl" style="float:left;margin-left:150px">',
                            '  ')[-1]
        return file_info
 
    def get_str_center(self, text, head_text, tail_text):
        '''
        返回指定头尾中间的文本内容
        :param text: 目标text
        :param head_text: 头
        :param tail_text: 尾
        :return: 返回内容的列表
        '''
        t_re = f'{head_text}(.*){tail_text}'
        return re.findall(t_re, text)
 
    def get_downfile_href_host(self, file_info):
        '''
        获取下载文件所需的地址和文件头
        :param file_info:
        :return:
        '''
        data = {'action': 'load_down_addr1',
                'file_id': file_info['id'],
                'vipd': 0
                }
        self.res = requests.post('http://www.tadaigou.com/ajax.php', headers=self.headers, data=data)
        href = self.get_str_center(self.res.text, 'true|<a href="', '" onclick')[-1]
        host = self.get_str_center(self.res.text, 'http://', '/dl.php')[-1]
        return href, host
 
    def down_file(self, href, host, name):
        # 下载文件头
        headers = {
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'Referer': 'http://www.tadaigou.com',
            'Host': host
        }
        file_to_save = self.path + name
        with open(file_to_save, 'wb') as fw:
            with requests.get(href, headers=headers) as r:
                # 此时响应头被下载
                print('-' * 30)
                print('下载文件基本信息:')
                print("文件名称:", name)
                print("文件类型:", r.headers["Content-Type"])
                filesize = r.headers["Content-Length"]
                print("文件大小:", filesize, "bytes")
                print("下载地址:", href)
                print("保存路径:", file_to_save)
                print("开始下载")
                # 计算大小
                chunk_size = 128
                times = int(filesize) // chunk_size
                show = 1 / times
                show2 = 1 / times
                start = 1
                for chunk in r.iter_content(chunk_size):
                    fw.write(chunk)
                    if start <= times:
                        stdout.write(f"下载进度: {show:.2%}\r")
                        start += 1
                        show += show2
                    else:
                        stdout.write("下载进度: 100%")
                print("\n文件名称:", name,"下载完成!")
                print('-' * 30)
 
 
if __name__ == '__main__':
    print('只能下单个小文件,类似百度转存的那种!')
 
    while True:
        key=input('请输入巴士盘的文件地址(输入e退出):')
        if key=='e':
            break
        elif key.find('www.tadaigou.com')!=-1:
            try:
                bspan = BaShiPan()
                info = bspan.get_down_file_info(key)
                href, host = bspan.get_downfile_href_host(info)
                bspan.down_file(href, host, info['name'])
            except:
                print('发生错误请重试!只能下小文件,百度转存的那种!')
        else:
            print('链接中并不是[url]www.tadaigou.com[/url]的,请看清楚')


网友提供下载链接:
https://lanren.lanzous.com/igAxbnxdvdi


1.本站所有文章内容均来自网络收集或网友投稿;2.文章内如有软件或者附件如有需要请尽快备份下载失效不补,本站不提保存备份;3.作者投稿可能会经我们编辑修改或补充。

标签:下载  最新  热门  收费  巴士盘  
相关评论

本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解! 

侵权删帖/违法举报/投稿等事物联系邮箱:adminad@email.cn

51La