日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

python实现的百度云自动下载

發(fā)布時間:2023/12/13 综合教程 27 生活家
生活随笔 收集整理的這篇文章主要介紹了 python实现的百度云自动下载 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄python實現(xiàn)簡單的百度云自動下載bypyapp授權查看目標目錄bypy下的文件和目錄bypy的命令插件眾多插件參考資料

2021-5-21
注意:這個功能目前不能用了,不知道為什么
運行代碼后提示:
[10:02:50] Waiting 10 seconds before retrying...
[10:03:00] Request Try #2 / 5
[10:03:00] Waiting 20 seconds before retrying...
[10:03:20] Request Try #3 / 5
[10:03:20] Waiting 30 seconds before retrying...
然后就沒然后了,誰找到突破方法,記得告訴我啊

python實現(xiàn)簡單的百度云自動下載

bypy

https://github.com/houtianze/bypy
這是一個百度云/百度網(wǎng)盤的Python客戶端。主要的目的就是在Linux環(huán)境下(Windows下應該也可用,但沒有仔細測試過)通過命令行來使用百度云盤的2TB的巨大空間。比如,你可以用在Raspberry Pi樹莓派上。它提供文件列表、下載、上傳、比較、向上同步、向下同步,等操作。
常用操作
由于百度PCS API權限限制,程序只能存取百度云端/apps/bypy目錄下面的文件和目錄。通過以下鏈接可以打開你的bypy默認路徑:
https://pan.baidu.com/disk/home

pip install bypy
app授權

第一次運行時,運行下面的代碼后,會提示進入以下目錄對app進行授權:

from bypy import ByPy
bp=ByPy()
bp.list() 

https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk


Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done

看到這張圖,就是已經(jīng)授權好了,然后你就可以打開我的百度網(wǎng)盤,在這里看到:

查看目標目錄bypy下的文件和目錄

由于百度PCS API權限限制,程序只能存取百度云端/apps/bypy目錄下面的文件和目錄
如果你COPY一些文件和目錄到bypy下,從app角度來看目標目錄,一般是這樣:

from bypy import ByPy
bp=ByPy()
bp.list() 

授權后運行,得到下面的結果:

bypy的命令

在命令行方式下:

bypy list #查看云盤目錄bypy下的文件和目錄 
bypy info #查看 System locale 和 磁盤空間使用情況,以及bypy作者的一些信息
bypy upload  # 把本地當前目錄下的文件上傳到app/bypy目錄下
bypy downdir /Python從入門到入獄  #下載
bypy help #更詳細的了解某一個命令:
bypy syncup #把當前目錄同步到云盤,或用bypy upload
bypy syncdown #把云盤內(nèi)容同步到本地來,或 bypy downdir /
#實踐可用 bypy syncdown --downloader aria2或者bypy downdir / --downloader aria2
#bypy syncdown 這個命令不好用,要在后面加 –downloader aria2,要不沒有速度

bypy compare  #比較本地當前目錄和云盤(程序的)根目錄(這個很有用)
bypy downfile 下載文件名 #下載文件 

bypy upload 文件名 #上傳文件
#例:將本地C:Mytemp1.txt文件上傳到云盤我的應用程序(apps)/bypy/cloud 文件夾內(nèi)(注意云端文件夾 用"/" ,本地文件夾用"")也可上傳整個文件夾,命令示例如下:
bypy upload C:Mytemp /cloud  #(將本地C:Mytemp文件夾內(nèi)所有文件上傳到云盤 apps/bypy/cloud 文件夾內(nèi))

bypy mkdir tmp/bypy #在遠端創(chuàng)建文件夾tmp 

其它:

運行時添加 -d ,會顯示一些調(diào)試信息。
運行時添加 -ddd ,還會會顯示HTTP通訊信息( 警告:非常多 )
運行時添加 -v 參數(shù),會顯示進度詳情。例如:使用命令:bypy -v upload localfile cloudfile
舉例:bypy -v upload C:Mytemp /cloud

其它功能:

import os
import platform
 
from bypy import ByPy
 
 
class Adapter:
    """
    bypy 適配器
    前提運行 bypy info 登陸成功
    """
    def __init__(self):
        self._bp = ByPy()
 
    def upload(self,localpath,remotepath,**kwargs):
        """
        上傳
        :param localpath:
        :param remotepath: /videos  實際路徑/bypy/videos
        :param kwargs:
        :return:
        """
        self._bp.upload(localpath=localpath,remotepath=remotepath,**kwargs)
 
    def delete_file(self,path):
        platf = platform.platform()
        if "Windows" in platf:
            os.system("del %s" % path)
        elif "Linux" in platf:
            os.system("rm -rf %s" % path)
        print("!-- delete success %s --!"%path)

其它方式:

#coding=utf-8
'''
自動填寫提取碼下載百度云資源
方法:
for
  讀取文件中的連接和提取碼
1 打開網(wǎng)頁(link)
2 輸入提取碼
3 下載
'''
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
f = open("baidulink.txt",encoding="utf-8")  
l = open("log.txt","w")             
lines = f.readlines()                
for line in lines: 
    
    if line != '
':
        if len(line) > 10:
            print (line)  
            list = line.split(" ")
            print (list)
            link = list[2]
            link = link.split(":")[1]
            link = link.strip()
            print (link)
            num = list[3].split(":")[1]
            num = num.strip()
            print (num)
            driver.get(link)
            elem = driver.find_element_by_id("eoX9ze") 
            elem.send_keys(num)
            elem.send_keys(Keys.RETURN)
            time.sleep(1)
            sreach_window = driver.current_window_handle  
            driver.find_element_by_xpath("http://*[@id='layoutMain']/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click()
            '''
            寫日志,便于檢查下載丟失的文件
            '''
            l.writelines(line)
            l.write('
')
    line = f.readline() 
    time.sleep(3)
f.close() 

把連接存在 baidulink.txt中,文件是逐行讀取,提取出連接和提取碼
使用selenium模擬瀏覽器,必須保證你的瀏覽器是Google Chrome,并裝了chromedriver,相關內(nèi)容自行百度

注意一下幾點:
1 elem = driver.find_element_by_id("eoX9ze")
這個id好是會變的,如果變了按F12查看

2 sreach_window = driver.current_window_handle
頁面跳轉(zhuǎn)后,需要把driver定位到當前頁面

3 driver.find_element_by_xpath("http://*[@id='layoutMain']/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click()
這里使用xpath(還有id name selector等,選擇適合的),可以使用選擇那段代碼然后復制xpath
以上功能十分簡單,能夠節(jié)省很多時間。如果頻繁下載,會遇到輸入驗證碼的時候,我選擇等待,還有其他方法(可以使用代理等)

插件

眾多插件

https://github.com/search?l=Python&q=baidu+pan&type=Repositories&utf8=?

參考資料

https://ezlost.com/bypy使用方法記錄/
https://blog.csdn.net/xia_yu_mao_fa/article/details/37772847
推薦:https://samzong.me/2017/06/02/howto-install-bypy/

總結

以上是生活随笔為你收集整理的python实现的百度云自动下载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。