python实现的百度云自动下载 您所在的位置:网站首页 百度云的下载目录 python实现的百度云自动下载

python实现的百度云自动下载

2024-07-02 09:52| 来源: 网络整理| 查看: 265

目录python实现简单的百度云自动下载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实现简单的百度云自动下载 bypy

https://github.com/houtianze/bypy 这是一个百度云/百度网盘的Python客户端。主要的目的就是在Linux环境下(Windows下应该也可用,但没有仔细测试过)通过命令行来使用百度云盘的2TB的巨大空间。比如,你可以用在Raspberry Pi树莓派上。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。 常用操作 由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录。通过以下链接可以打开你的bypy默认路径: https://pan.baidu.com/disk/home#list/vmode=list&path=%2Fapps%2Fbypy

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 看到这张图,就是已经授权好了,然后你就可以打开我的百度网盘,在这里看到:

查看目标目录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 #把云盘内容同步到本地来,或 bypy downdir / #实践可用 bypy syncdown --downloader aria2或者bypy downdir / --downloader aria2 #bypy syncdown 这个命令不好用,要在后面加 –downloader aria2,要不没有速度 bypy compare #比较本地当前目录和云盘(程序的)根目录(这个很有用) bypy downfile 下载文件名 #下载文件 bypy upload 文件名 #上传文件 #例:将本地C:\Mytemp\1.txt文件上传到云盘我的应用程序(apps) /bypy/cloud 文件夹内 (注意云端文件夹 用"/" ,本地文件夹用"\")也可上传整个文件夹,命令示例如下: bypy upload C:\Mytemp /cloud    #(将本地C:\Mytemp文件夹内所有文件上传到云盘 apps/bypy/cloud 文件夹内) bypy mkdir tmp/bypy #在远端创建文件夹tmp

其它:

运行时添加\ -d\ ,会显示一些调试信息。 运行时添加\ -ddd\ ,还会会显示HTTP通讯信息(\ 警告:非常多\ ) 运行时添加\ -v\ 参数,会显示进度详情。例如:使用命令: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 打开网页(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 != '\n': 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("//*[@id='layoutMain']/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click() ''' 写日志,便于检查下载丢失的文件 ''' l.writelines(line) l.write('\n') line = f.readline() time.sleep(3) f.close()

把连接存在 baidulink.txt中,文件是逐行读取,提取出连接和提取码 使用selenium模拟浏览器,必须保证你的浏览器是Google Chrome,并装了chromedriver,相关内容自行百度

注意一下几点: 1 elem = driver.find_element_by_id("eoX9ze") 这个id好是会变的,如果变了按F12查看

2 sreach_window = driver.current_window_handle 页面跳转后,需要把driver定位到当前页面

3 driver.find_element_by_xpath("//*[@id='layoutMain']/div[1]/div[1]/div/div[2]/div/div/div[2]/a[2]").click() 这里使用xpath(还有id name selector等,选择适合的),可以使用选择那段代码然后复制xpath 以上功能十分简单,能够节省很多时间。如果频繁下载,会遇到输入验证码的时候,我选择等待,还有其他方法(可以使用代理等)

插件 众多插件

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/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有