ccloli / E-Hentai-Downloader

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

解析到被屏蔽的H@H域名后无法自动修正更新导致无法下载 #282

Closed theFreeWall closed 6 months ago

theFreeWall commented 7 months ago

大陆地区的一些H@H客户端ip端口在最近几个月查运营商pcdn的时候顺便被干掉了(端口被阻断,无论国外国内都tcping不通) 使用网页端看图时无法加载被屏蔽的域名过一段时间后,会自动跳转到其他能正常通信的H@H的域名(虽然要等打不开图片很久后才跳转) 但是用脚本下载会一直尝试从被屏蔽的域名ip下载导致一直下载失败,无法自动跳转到其他域名下载

theFreeWall commented 7 months ago

https://github.com/ccloli/E-Hentai-Downloader/issues/280#issuecomment-1951082763 一般在尝试下载多次失败重试时,脚本会尝试重新获取图片地址,此时 EH 有可能会返回其他服务器的地址。

实测使用网页端看图时会自动重新获取图片地址,但是脚本下载会一直失败

theFreeWall commented 7 months ago

以及下载较大的图片时会下载错误 因为以上问题,所以我直接尝试用外网ip下载避免解析到大陆地区的节点 但是又遇到一个问题:大概下载一些较大的图片时会下载失败,大约超过10mb的图片,下载大概8~9秒后会自动直接失败("在Abort downloading current image after 180 s..."设置无效),然后重新下载,继续下载几秒后失败以此往复,尝试这样下载几十次都不会成功 (一些比较小的图片不会失败的原因应该是很快就下载好了,不像这些较大的图片需要等待几秒) 但是直接打开控制台中log的原图地址是可以成功打开并下载保存的

ccloli commented 7 months ago

但是用脚本下载会一直尝试从被屏蔽的域名ip下载导致一直下载失败,无法自动跳转到其他域名下载

这是默认的行为,重试 3 次才会标记为失败,来减少额外的 viewing points 或 credits 消耗。标记为失败时,状态会显示为红色,待其他图片的请求均结束后,脚本会询问是否需要重试,此时才会重新请求新的资源地址。

因为以上问题,所以我直接尝试用外网ip下载避免解析到大陆地区的节点

你可以尝试在 EH 的设置中将 Image Load Settings 的 Browsing Country 改为其他地区。

但是又遇到一个问题:大概下载一些较大的图片时会下载失败,大约超过10mb的图片,下载大概8~9秒后会自动直接失败

请确认 Abort downloading current image if speed is less than 是保持禁用状态。若已经关闭了该功能,由于该错误是浏览器直接抛出的,脚本没有比较好的解决方法,可以考虑换用 gallery-dl 等工具来下载,并实现断点续传。

theFreeWall commented 6 months ago

1.我就是多次重试下载还是解析的大陆的ip(询问重试后依然是旧的资源地址)才无法下载的..... 2.Abort downloading current image if speed is less than 第一时间就设置了

不过通过"Image Load Settings 的 Browsing Country 改为其他地区"成功解决了问题,之前一直不知道e站有这个功能,一直尝试修改脚本的设置代码都没能解决,现在已经完美解决了

谢谢您的解答和帮助,祝你天天开心~

ccloli commented 6 months ago

我就是多次重试下载还是解析的大陆的ip(询问重试后依然是旧的资源地址)才无法下载的.....

那多半是因为这个文件在 H@H 的大陆区域可能只有这个节点分发了, 或者可能是原始图片地址不会读取 nl 参数来绕过 H@H 了

确认了下,nl 参数 EH 还是会读取的,也就是说重试时文件肯定来自 EH 的源服务器,这只能解释为无法直连 EH 的原始服务器了