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個資源的轉存。如有知曉的同學敬請私信告知。

封裝的百度網盤轉存和創建文件夾代碼在
代碼

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