ccloli / E-Hentai-Downloader

Download E-Hentai archive as zip file
GNU General Public License v3.0
1.82k stars 137 forks source link

下载被ban 怎么稳定运行 #207

Closed telessa closed 2 years ago

telessa commented 2 years ago

e站有金星账号 浏览器 Edge版本 99.0.1150.39 (正式版本) (64 位) Tampermonkey 4.15 @version 1.33.5

个人设置如下 1 2 3 4

同时开了50个标签页 只成功下了一半任务 就ban了 怎么能在添加比较多的任务同时 稳定下载

yingziwu commented 2 years ago

E hentai 对于单IP有频率限制。

『同时开了50个标签页』,同时下载这么多被 ban 也是相当正常的。

你可以尝试通过多个代理进行负载均衡,但这不是油猴脚本应该解决的事情。

ccloli commented 2 years ago

同时开 50 个有点过火吧,这和同时下载 5 张图,同时开 10 个标签页下载没什么区别,甚至还会有更多的内存占用使浏览器更容易崩溃而付诸东流。

如果真有多个 gallery 需要同时下载,建议还是换用其他的工具或者 H@H(而且如果你有足够多的 gp 或 credit 来重置 viewing limit,那还不如直接用官方的 Archive Download),脚本本身也无法提供切换 ip 与代理的功能(顺带也可能有 ban 号的风险)

telessa commented 2 years ago

非常感谢回复 开50 个确实过火 主要是下载30页不到同人本 32g内存是充足的 只用了19g左右

官方的 Archive Download 和torrent 或者H@H 都有试过 用Archive Download添加了125个gallery 但是下载器 并没有收到全部下载链接 总会遗漏几个 而从每页25个搜索结果中 确认哪个没有成功生成下载链接 相当费神

H@H 用了一年 实际会在个别任务上卡死 没法跳过 只能删key重来

torrent 下种子很快很方便 可是会出现个别种子没速度的情况 而种子名称和网页上显示的并不一致 这时要挑出那个没速度的种子 并且换方式重新下载也相当费神

老实说 用官方的手段 花在添加下载任务和确认上的时间 精力实在远超用油猴脚本 Archive Download 添加一个gallery 有时十秒 但是添加失败刷新就要一分钟 torrent 下载200个种子只要140秒 但是确认下载速度并且替换低速种子 最后用了一个多小时 还有手滑重复下载和误删的情况出现 总数对不上200

我不需要同时下载多个gallery加快速度 也有足够的gp 只是希望能添加几百个任务 一个个的下载 这样也好干点别的

yingziwu commented 2 years ago

只是希望能添加几百个任务 一个个的下载 这样也好干点别的

这个应该可以实现。

可以在脚本中添加一个完成时回调函数接口(本人的油猴脚本便加入了这样的接口)。

然后便可以编写一个油猴脚本,负责注入完成时回调函数以及开始下载任务,然后便可以达到添加几百个任务,一个个的下载的目的。

ccloli commented 2 years ago

虽然还是不建议使用这种方式进行大量下载,毕竟下载原始图片时流量是没经过 H@H 的,所以会给源站造成压力。不过如果确实有需要的话,可以考虑使用其他工具实现。

例如命令行工具 gallery-dl,你只需要写个批处理 / shell 脚本就可以实现队列下载了;或者前几天看到的一个 GUI 工具 Hitomi Downloader,看 README 的演示似乎支持队列。

当然以上工具我都没试过,只是看到有这些工具而已,不过可以试试看。

yingziwu commented 2 years ago

又想了一个,Hentai-Downloader 脚本不添加额外接口也可以做到。

你可以编写这样一个下载任务调度脚本。

打开所有需要下载 gallery 页面(这需要一些内存,但你的电脑内存大所以不要紧),运行调度脚本下载端,然后调度脚本下载端根据主控端命令执行相关下载命令。

下载端脚本设计:

主控端设计:

  1. 收到开始命令后,向特定 BroadcastChannel 发送 discover 指令。
  2. 统计上报的 worker id ,对这些id进行排序。
  3. 从首自尾依次指示相应 worker 开始下载。
telessa commented 2 years ago

非常感谢回复 应该能解决问题