python实现百度网盘创建文件夹与转存

最近学习尝试了一些爬虫的皮毛。前几天又通过jsonup将某个网站的会员视频的百度网盘链接与提取码爬入了数据库中。但是由于视频内容还是比较多的(大概2300个),一个一个地转存入度盘中太过繁琐。

同时不同视频的分类是不同的,我想要实现对于每种分类新建相应名字的文件夹,并将对应的视频转存入相应的文件夹中。

博主又懒又菜,看了一些别的大佬的博客,java实现的比较少,python实现的有几个。因此本篇博客主要用于记录百度网盘创建文件夹与转存的api与机制及核心python代码。

python实现百度网盘创建文件夹与转存

百度网盘创建文件夹

吾爱破解中的这篇写的很好:
https://www.52pojie.cn/thread-1005198-1-1.html

大佬的Commonly.py可以用于直接转存到百度云盘当中。其中需要6个参数:百度云盘链接、提取码、保存路径、BDUSS、STOKEN、bdstoken。

后三个参数需要在Cookies中获取,涉及到了个人的账号信息。其中bdstoken需要在重新登录账号后抓包获得,BDUSS、STOKEN可以在转存或登录时抓包获得。

这个代码中最好加入一段考虑到过期时的报错提醒,即:

    if '侵权、色情、反动、低俗' in req.text:
        return ('此链接分享内容可能因为涉及侵权、色情、反动、低俗等信息,无法访问!')
    elif '过期' in req.text:
        return ('啊哦,来晚了,该分享文件已过期')
    else:
    #代码中的其他内容

百度网盘转存

这篇博客中包括了百度网盘转存的api及方法
https://blog.csdn.net/madonghyu/article/details/80602185

简单的封装出了一个方法如下:

def bdcreate(savepath, BDUSS, STOKEN, bdstoken):
    s = requests.Session()
    s.cookies['BDUSS'] = BDUSS
    s.cookies['STOKEN'] = STOKEN
    headers = {
        'User-Agent': get_user_agent_pc(),
    }
    # 创建文件夹
    create_floder = {
        # 不知道是什么,大部分情况为空
        'block_list': '[]',
        'isdir': '1',
         # 保存的位置,创建文件夹
        'path': savepath
    }
    # 创建文件夹的链接
    url_create = 'https://pan.baidu.com/api/create?a=commit' \
                 '&channel=chunlei' \
                 '&web=1' \
                 '&app_id=250528' \
                 '&bdstoken=%s' \
                 '&logid=MTU3OTE3MDU4NTcwOTAuOTQwNjAwNDgxNDExNjMwNw==' \
                 '&clienttype=0' % (bdstoken)
    print(url_create)
    response = s.post(url_create, data=create_floder, headers=headers)
    response.encoding = 'utf-8'
    print(response.content)

实战思路

将爬好的数据库数据取出处理为json数据,同时去重整理出一个涵盖所有标签的List,for循环调用百度网盘创建文件夹方法创建各种标签的文件夹。

将json数据for循环调用百度网盘转存方法存入相应标签的文件夹中。

仍存疑部分

实际转存时,超过3次会要求输入验证码,代码中的vcode应该是处理验证码的,但我没看懂代码中怎样解决了验证码问题。实践中确实可以实现2300个资源的转存。如有知晓的同学敬请私信告知。

封装的百度网盘转存和创建文件夹代码在
代码

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章