gaowanliang / OneDriveShareLinkPushAria2

Extract download URLs from OneDrive or SharePoint share links and push them to aria2, even on systems without a GUI.
Apache License 2.0
318 stars 68 forks source link

貌似有密码的还有点问题? #9

Closed wdtgbot closed 3 years ago

wdtgbot commented 3 years ago

我这运行发生了如下报错

Traceback (most recent call last): File "/root/od/havepassword.py", line 73, in havePwdDownloadFiles(OneDriveShareURL, OneDriveSharePwd, aria2Link, File "/root/od/havepassword.py", line 65, in havePwdDownloadFiles asyncio.get_event_loop().run_until_complete(main(iurl, password)) File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete return future.result() File "/root/od/havepassword.py", line 28, in main browser = await launch() File "/usr/local/lib/python3.9/dist-packages/pyppeteer/launcher.py", line 307, in launch return await Launcher(options, **kwargs).launch() File "/usr/local/lib/python3.9/dist-packages/pyppeteer/launcher.py", line 148, in launch self.proc = subprocess.Popen( # type: ignore File "/usr/lib/python3.9/subprocess.py", line 951, in init self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.9/subprocess.py", line 1823, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) OSError: [Errno 8] Exec format error: '/root/od/local-chromium/588429/chrome-linux/chrome'

wdtgbot commented 3 years ago

补一下详细说明,测试链接是这个 https://yantaimedshow-my.sharepoint.com/:f:/g/personal/lidongsheng2007_yantaimedshow_onmicrosoft_com/Eg3L-Vk3_E9EpFgBP0NBsVwB85nS-alkb0v4Ju5EinJ5ww?e=HKKLlL 密码是@teamfreeshare 配置和日志截图如下: 屏幕截图 2021-09-18 222918.png 屏幕截图 2021-09-18 223014.png

gaowanliang commented 3 years ago

无头浏览器启动失败,和我编写的代码没有直接联系,请去pyppeteer提issue进行询问

FebTweth commented 3 years ago

无头浏览器启动失败,和我编写的代码没有直接联系,请去pyppeteer提issue进行询问

好的,谢谢 还有原来我想用原地址来试验一下,对于文件夹的下载使用 downloadNum 设置,比如downloadNum =1,会下载第一个文件夹,还是第一个文件夹里的第一个文件?那里面的文件会不会保持原来目录结构? 再有就是可不可以增加对原地址的支持,比如这个网页 https://s.shuge.org/all 里的微软网盘共享,打开之后就是原地址了,执行后报文 “ 这个文件夹没有文件” 还有就是可不可以增加 推送给Aria2之后不直接下载的选项?

gaowanliang commented 3 years ago

无头浏览器启动失败,和我编写的代码没有直接联系,请去pyppeteer提issue进行询问

好的,谢谢 还有原来我想用原地址来试验一下,对于文件夹的下载使用 downloadNum 设置,比如downloadNum =1,会下载第一个文件夹,还是第一个文件夹里的第一个文件?那里面的文件会不会保持原来目录结构? 再有就是可不可以增加对原地址的支持,比如这个网页 https://s.shuge.org/all 里的微软网盘共享,打开之后就是原地址了,执行后报文 “ 这个文件夹没有文件” 还有就是可不可以增加 推送给Aria2之后不直接下载的选项?

  1. 分享链接打开后的地址栏的链接是无法提供cookie的,你自己复制一下打开分享链接后的地址栏的地址到private模式的浏览器窗口,会发现什么都没有,所以程序必须接受OneDrive在分享时提供的链接。至于通过短链接隐藏了原始分享链接,可以通过F12抓包获得,比如你所提供的网站原始链接就是 https://shuge-my.sharepoint.com/:f:/g/personal/wei_shuge_onmicrosoft_com/Eo2uz9e5T4JEkx9ymYp8h1UBrepDNzKNFVCmf2Pb4G-wtg?e=VhYQBc image

  2. 由于OneDrive的cookie有时间限制,必须推送完在一段时间内持续下载才行,所以只能推送后马上下载,不直接下载没有意义,虽然能做,但是你会发现过段时间就下载不了了

  3. 没有对文件夹整个的下载,文件标号也是针对文件夹内的文件,可以观察一下isDownload=False时的输出列表,理论上讲都会保持源目录结构