xuzhengyi1995 / Bookwalker_Downloader

Download manga you rent from https://bookwalker.jp/
33 stars 6 forks source link

the error #1

Closed coremaya closed 4 years ago

coremaya commented 4 years ago

DevTools listening on ws://127.0.0.1:7740/devtools/browser/badcb387-6521-4ff0-b8b3-0baa2c8bdfda Preparing for downloading... Something wrong or download finished, Please check the error.png to see the web page. Normally, you should logout and login, then renew the cookies to solve this problem.

and how to check the original image resolution.

zeroaq commented 4 years ago

你好,你这脚本可以使用,但是运行脚本后打开网页会提示你需要进行登录

coremaya commented 4 years ago

你好,你这脚本可以使用,但是运行脚本后打开网页会提示你需要进行登录

登录之后 就出现这个错误

zeroaq commented 4 years ago

error 运行后出现上图

coremaya commented 4 years ago

error 运行后出现上图

对如果输入慢会自己关闭 ,我输入之后就到浏览漫画网页 之后就闪退 显示这个错误

zeroaq commented 4 years ago

error 登录后会出现上图

coremaya commented 4 years ago

error 登录后会出现上图

没有这个图 直接闪退了

coremaya commented 4 years ago

error 登录后会出现上图

error 就是出现这个转圈 然后自己就关闭了

xuzhengyi1995 commented 4 years ago

您好, 该网站十分严格,每本漫画在打开时会均会有记录,以防止多个人用同一账号的情况。 所以,在使用之前,建议首先关闭所有已打开的漫画,退出自己的账号并重新登陆以获取干净可用的Cookies,并且登陆后不建议再打开需要下载的漫画。同时,为了从第一页开始下载,建议首先点击「未読にする」清空阅读记录。

同时,根据您的建议,我修改了程序,可以使用手动登陆并且无需输入Cookies。 使用该功能时,建议先在浏览器关闭已打开的漫画并退出自己的账号。

您可以将第23行的:

MANUAL_LOGIN = False

更改为:

MANUAL_LOGIN = True

这样来使用手动登陆,无需再输入Cookies,输入用户名密码并按登陆按钮后,程序会检测并继续运行。

感谢您的尝试,如果有任何其他问题,请再提出,谢谢!

xuzhengyi1995 commented 4 years ago

and how to check the original image resolution.

关于原图分辨率问题,可以如下操作观察:

  1. 按F12
  2. 切换到network
  3. 刷新
  4. 这时,您可以看到一些请求左侧有一个齿轮⚙符号
  5. 随意点击一个,单击右键,'Copy'->'Copy link address’
  6. 这时您可能拷贝了一个以’https://bw-bv-epubs.bookwalker.jp‘ 为域名的URL,如果二级域名不同,也属正常。
  7. 将其粘贴至浏览器,您可以下载到一个被打乱顺序的漫画的一页
  8. 这张图片的分辨率即为原始分辨率,您可以将图片另存为至本地并查看文件属性->详细信息,来确认分辨率。

不过,分辨率的设置完全可以高于该分辨率,但是图片是经过放大的图片,不会带来实际清晰度的提升,但是请尽量保持宽高比一致,以防止白边。

xuzhengyi1995 commented 4 years ago

你好,你这脚本可以使用,但是运行脚本后打开网页会提示你需要进行登录

登录之后 就出现这个错误

您好,上一版本的脚本需要手动输入Cookies,并不支持手动输入邮件与密码登陆,目前新版可以设置为手动登陆,请参考这里

coremaya commented 4 years ago

你好,你这脚本可以使用,但是运行脚本后打开网页会提示你需要进行登录

登录之后 就出现这个错误

您好,上一版本的脚本需要手动输入Cookies,并不支持手动输入邮件与密码登陆,目前新版可以设置为手动登陆,请参考这里

好的 准备试试 辛苦了

xuzhengyi1995 commented 4 years ago

就是出现这个转圈 然后自己就关闭了

如果再次出现这种情况的,建议您增加加载延迟,可以将第25行

LOADING_WAIT_TIME = 20

更改为

LOADING_WAIT_TIME = 40

或者更大的延迟进行尝试,谢谢。

zeroaq commented 4 years ago

可以用了,十分感谢

coremaya commented 4 years ago

and how to check the original image resolution.

关于原图分辨率问题,可以如下操作观察:

  1. 按F12
  2. 切换到network
  3. 刷新
  4. 这时,您可以看到一些请求左侧有一个齿轮⚙符号
  5. 随意点击一个,单击右键,'Copy'->'Copy link address’
  6. 这时您可能拷贝了一个以’https://bw-bv-epubs.bookwalker.jp‘ 为域名的URL,如果二级域名不同,也属正常。
  7. 将其粘贴至浏览器,您可以下载到一个被打乱顺序的漫画的一页
  8. 这张图片的分辨率即为原始分辨率,您可以将图片另存为至本地并查看文件属性->详细信息,来确认分辨率。

不过,分辨率的设置完全可以高于该分辨率,但是图片是经过放大的图片,不会带来实际清晰度的提升,但是请尽量保持宽高比一致,以防止白边。

我另存为一个 像素是7841200 但是下载下来有白边 下载下来的是989940

xuzhengyi1995 commented 4 years ago

我另存为一个 像素是784 1200 但是下载下来有白边 下载下来的是989 940

一般来说原因可能如下:

  1. 在登陆之后可能手动调整了窗口大小,请注意不要对窗口大小进行调整,会对图片的采集有影响。
  2. 浏览器与环境不同产生的特殊问题,可以尝试更改分辨率进行修正。
  3. 请再次检查RES变量的设置情况。

    RES = (784, 1200)

    如果还是无法解决问题,您可以尝试根据实际图片与预期图片的差值进行修正。 但是您的例子十分特殊,宽度比设置的宽,但是长度比设置的短,这种情况按道理不应该出现。 在您的例子中,可以尝试将RES设置为:

    RES = (784, 1460)
    # OR
    RES = (579, 1460)

    但是我个人觉得可能性最高的还是情况1,您手动调整了窗口大小,还请您再次尝试,如果仍然有问题,可以提出并再尝试使用其他方法解决,谢谢。

coremaya commented 4 years ago

我另存为一个 像素是784 1200 但是下载下来有白边 下载下来的是989 940

一般来说原因可能如下:

  1. 在登陆之后可能手动调整了窗口大小,请注意不要对窗口大小进行调整,会对图片的采集有影响。
  2. 浏览器与环境不同产生的特殊问题,可以尝试更改分辨率进行修正。
  3. 请再次检查RES变量的设置情况。
    RES = (784, 1200)

如果还是无法解决问题,您可以尝试根据实际图片与预期图片的差值进行修正。 但是您的例子十分特殊,宽度比设置的宽,但是长度比设置的短,这种情况按道理不应该出现。 在您的例子中,可以尝试将RES设置为:

RES = (784, 1460)
# OR
RES = (579, 1460)

但是我个人觉得可能性最高的还是情况1,您手动调整了窗口大小,还请您再次尝试,如果仍然有问题,可以提出并再尝试使用其他方法解决,谢谢。

没调整窗口 变成788*969了 还是有白边

xuzhengyi1995 commented 4 years ago

没调整窗口 变成788*969了 还是有白边

还请告知漫画的地址,以便我进行检查,谢谢。

coremaya commented 4 years ago

没调整窗口 变成788*969了 还是有白边

还请告知漫画的地址,以便我进行检查,谢谢。 https://bookwalker.jp/de640c0ddd-896c-4881-945f-ad5ce9a070a6/

xuzhengyi1995 commented 4 years ago

没调整窗口 变成788*969了 还是有白边

还请告知漫画的地址,以便我进行检查,谢谢。 https://bookwalker.jp/de640c0ddd-896c-4881-945f-ad5ce9a070a6/

您好,该漫画为脚本的例子,经过测试确实是正常的,可能是您的浏览器与环境问题,请问您是否尝试修正RES的值,如果您修正之后变为788 * 969的话,可以考虑将高度值再加231像素。

如果您没有修正RES的值但是图片输出大小有变化的话,目前我无法想到原因。

我使用的Chrome版本为64位79.0.3945.130,您还可以尝试关闭所有Chrome窗口并重启浏览器或重启电脑等方式来进行错误排除,如果您的Chrome版本与我不一致并且再尝试以上操作之后仍然不能解决问题的话,还麻烦提供一下您的Chrome版本以便我进行测试,谢谢。

coremaya commented 4 years ago

没调整窗口 变成788*969了 还是有白边

还请告知漫画的地址,以便我进行检查,谢谢。 https://bookwalker.jp/de640c0ddd-896c-4881-945f-ad5ce9a070a6/

您好,该漫画为脚本的例子,经过测试确实是正常的,可能是您的浏览器与环境问题,请问您是否尝试修正RES的值,如果您修正之后变为788 * 969的话,可以考虑将高度值再加231像素。

如果您没有修正RES的值但是图片输出大小有变化的话,目前我无法想到原因。

我使用的Chrome版本为64位79.0.3945.130,您还可以尝试关闭所有Chrome窗口并重启浏览器或重启电脑等方式来进行错误排除,如果您的Chrome版本与我不一致并且再尝试以上操作之后仍然不能解决问题的话,还麻烦提供一下您的Chrome版本以便我进行测试,谢谢。

无标题 我改成100%就变第二个 但是还是不是784*1200,程序原理是截图吗为什么跟我自己的分辨率有关系

xuzhengyi1995 commented 4 years ago

我改成100%就变第二个 但是还是不是784*1200,程序原理是截图吗为什么跟我自己的分辨率有关系

您好,程序是直接保存canvas到文件,但是canvas的大小与窗口有关,并且由JS控制,我发现在之前的程序中由于计算错误得到的图片会由约10-20个像素左右的偏差,目前已经修正并commit, 还麻烦您更新,谢谢。

由于Windows的缩放设置,可能会造成设置窗口大小出现偏差,如果您使用125%的缩放,我对这方面没有什么经验,有可能会造成窗口设置的分辨率与实际不符,在使用125%的缩放情况下,您可以尝试将分辨率也除以125%:

RES = (628, 960)

这也许可以解决您的问题。 还麻烦您再次尝试,谢谢!

如果还是不行,目前还请将缩放设置为100%,我会再考虑如何解决该问题,谢谢。

xuzhengyi1995 commented 4 years ago

我改成100%就变第二个 但是还是不是784*1200,程序原理是截图吗为什么跟我自己的分辨率有关系

您好,经过测试,我将缩放调整到125%,但是对程序的运行没有任何影响,目前新一版本的输出像素为恰好的784 * 1200,由于很难复现您的情况,调整方面确实有一些无从下手。

我会尝试更新程序为直接调整canvas的大小,以避免对窗口大小的依赖,目前给您带来的不便非常抱歉,谢谢!

coremaya commented 4 years ago

我改成100%就变第二个 但是还是不是784*1200,程序原理是截图吗为什么跟我自己的分辨率有关系

您好,经过测试,我将缩放调整到125%,但是对程序的运行没有任何影响,目前新一版本的输出像素为恰好的784 * 1200,由于很难复现您的情况,调整方面确实有一些无从下手。

我会尝试更新程序为直接调整canvas的大小,以避免对窗口大小的依赖,目前给您带来的不便非常抱歉,谢谢!

好的辛苦了 感觉您真的是很好的人 很耐心 谢谢

xuzhengyi1995 commented 4 years ago

我改成100%就变第二个 但是还是不是784*1200,程序原理是截图吗为什么跟我自己的分辨率有关系

您好,经过测试,我将缩放调整到125%,但是对程序的运行没有任何影响,目前新一版本的输出像素为恰好的784 * 1200,由于很难复现您的情况,调整方面确实有一些无从下手。 我会尝试更新程序为直接调整canvas的大小,以避免对窗口大小的依赖,目前给您带来的不便非常抱歉,谢谢!

好的辛苦了 感觉您真的是很好的人 很耐心 谢谢

谢谢!

经过调查,Chrome会对系统DPI的设置做出反应并相应的缩放画面,这对分辨率的设置会有影响,目前,新版本的程序加入了以下两个选项:

option.add_argument('--high-dpi-support=1')
option.add_argument('--force-device-scale-factor=1')

该选项会强制Chrome使用正常缩放,以便获得正常的截图。

非常奇怪为何我在尝试调整DPI时Chrome并没有更改设置,可能和我更改DPI后没有重启系统有关。

还请您有时间时更新并进行尝试,希望可以正常运行,谢谢

coremaya commented 4 years ago

我改成100%就变第二个 但是还是不是784*1200,程序原理是截图吗为什么跟我自己的分辨率有关系

您好,经过测试,我将缩放调整到125%,但是对程序的运行没有任何影响,目前新一版本的输出像素为恰好的784 * 1200,由于很难复现您的情况,调整方面确实有一些无从下手。 我会尝试更新程序为直接调整canvas的大小,以避免对窗口大小的依赖,目前给您带来的不便非常抱歉,谢谢!

好的辛苦了 感觉您真的是很好的人 很耐心 谢谢

谢谢!

经过调查,Chrome会对系统DPI的设置做出反应并相应的缩放画面,这对分辨率的设置会有影响,目前,新版本的程序加入了以下两个选项:

option.add_argument('--high-dpi-support=1')
option.add_argument('--force-device-scale-factor=1')

该选项会强制Chrome使用正常缩放,以便获得正常的截图。

非常奇怪为何我在尝试调整DPI时Chrome并没有更改设置,可能和我更改DPI后没有重启系统有关。

还请您有时间时更新并进行尝试,希望可以正常运行,谢谢 我运行程序,打开的chrome确实强制缩放了,但是下载的图片依然有白边 像素不正确784*941如果用res(628,960)没有白边 但是不是原始像素

xuzhengyi1995 commented 4 years ago

我运行程序,打开的chrome确实强制缩放了,但是下载的图片依然有白边 像素不正确784*941如果用res(628,960)没有白边 但是不是原始像素

请问628,960下载的图片分辨率是多少,谢谢,因为目前我还没有很好的方法直接对canavas操作,所以还是只能用这种形式,谢谢。

coremaya commented 4 years ago

我运行程序,打开的chrome确实强制缩放了,但是下载的图片依然有白边 像素不正确784*941如果用res(628,960)没有白边 但是不是原始像素

请问628,960下载的图片分辨率是多少,谢谢,因为目前我还没有很好的方法直接对canavas操作,所以还是只能用这种形式,谢谢。

就是628*960

xuzhengyi1995 commented 4 years ago

就是628*960

这确实非常诡异,如果使用628 960可以得到准确的分辨率图片的话,按道理784 1200也应该可以,并且从结果上看,宽度准确,仅仅是高度变少了,确实非常奇怪。

非常抱歉但是目前我只能给出以下的解决方式,尝试多组不同的RES

  1. 从结果上看,高度变少,那么可以尝试只对高度增加259:
    RES = (784, 1459)
  2. 同时可以尝试1.25 * 原始:
    RES = (980, 1500)
  3. 2倍于原始如果正常也可以使用:
    RES = (1568, 2400)

您可以随意的尝试一些其他组合,以便找到一个符合要求的值,一般来说,输出图片的像素大于原始图片也是可以接受的。

非常抱歉目前只能出此下策,如果调整RES的值不起作用的话,并且您有条件使用其他设备运行,也建议尝试。

steamgirl2020 commented 4 years ago

你好,这脚本可以使用,但是我碰到一个问题,只能下载第1页,随后就出错了,然后我手动翻页,没想到脚本不停的下载,可是我发现,是在录屏下载??

xuzhengyi1995 commented 4 years ago

你好,这脚本可以使用,但是我碰到一个问题,只能下载第1页,随后就出错了,然后我手动翻页,没想到脚本不停的下载,可是我发现,是在录屏下载??

您好,请问出现的错误是什么,如果是由于加载缓慢导致的重复与错误,可以尝试调整第22行SLEEP_TIME加长等待时间,默认为2秒,可以将其调整为5秒或者10秒。

该脚本直接保存canvas进行图片下载,由于该网站使用了各种复杂的方法防止下载,所以直接保存canvas为最方便的方法,和下载原图有相同的效果。

xuzhengyi1995 commented 4 years ago

我查看了Bookworm的源代码,他非常完整的逆向出了整个网页版漫画浏览器从获取配置文件(包含3个32Bytes的密钥,配置内容),解密配置文件,获取图片,图片块的交换的整个过程,该网站的加密复杂程度甚至比我想象中的还要复杂很多。

他的工作非常了不起,逆向该网站的JavaScript代码绝非容易的工作,甚至使用Python重写他的代码都会耗费较多的时间,因为解密的模块有大量的代码。

他的程序中的图片也需要经过Canvas重新绘制,所以如果浏览器的大小设置得当的话,下载图片的效果应当是没有差别的(在网页版漫画浏览器绘制Canvas没有特殊限制的情况下,这点我并没有进行验证)。

不过我还是建议使用他的程序,因为在使用的方便程度,下载速度和可靠度上,他的程序都非常好,逆向出整个过程也非常了不起。

我在此关闭该Issue同时感谢大家提出的问题,让我在此也能有所学习。

如果在使用Bookworm的过程中有问题的话,也可以提出,我将尽可能的解决。

coremaya commented 4 years ago

我一运行bookworm 就连接好久也不动

coremaya commented 4 years ago

我查看了Bookworm的源代码,他非常完整的逆向出了整个网页版漫画浏览器从获取配置文件(包含3个32Bytes的密钥,配置内容),解密配置文件,获取图片,图片块的交换的整个过程,该网站的加密复杂程度甚至比我想象中的还要复杂很多。

他的工作非常了不起,逆向该网站的JavaScript代码绝非容易的工作,甚至使用Python重写他的代码都会耗费较多的时间,因为解密的模块有大量的代码。

他的程序中的图片也需要经过Canvas重新绘制,所以如果浏览器的大小设置得当的话,下载图片的效果应当是没有差别的(在网页版漫画浏览器绘制Canvas没有特殊限制的情况下,这点我并没有进行验证)。

不过我还是建议使用他的程序,因为在使用的方便程度,下载速度和可靠度上,他的程序都非常好,逆向出整个过程也非常了不起。

我在此关闭该Issue同时感谢大家提出的问题,让我在此也能有所学习。

如果在使用Bookworm的过程中有问题的话,也可以提出,我将尽可能的解决。 image

运行之后出现这情况,跟我的本地网络有关系吗

xuzhengyi1995 commented 4 years ago

我一运行bookworm 就连接好久也不动

您好,经过实验,他的程序确实是单线程下载的,下载的速度确实比较缓慢(也有可能是最近我这边网络有问题)。

使用上:

npm install
npm start

请注意

npm install

这一步骤,如果您在国内,由于某些库需要下载二进制文件,否则需要编译,但是由于国内的网络问题,大部分时候都无法正常下载,所以,对于国内用户,您可以使用以下命令以代替npm install,从淘宝的镜像中拉取二进制文件和代码。

npm config set registry http://registry.npm.taobao.org
npm install --registry=https://registry.npm.taobao.org

之后,再正常运行npm start

image

如果您使用浏览器可以正常浏览,但是Bookworm会提示Timeout的话,您可以尝试更改程序的Timeout的值,虽然他的程序中,超时已经被设置为120秒,已经是Unix系统中连接超时的上限,但是您依旧可以尝试将其增加,因为超时可能是读取超时,这样或许可以解决问题。

具体更改如下:

  1. 打开./src/Http/Client.ts文件

  2. 在第22行中,您可以尝试直接将:

    timeout: 120000,

    中的120000,增加一个0,更改为1200000,这时超时为1200秒。

您同样也可以尝试使用VPN。

另外,经过实验,像我的脚本一样保存Canvas,得到的图片质量确实和他的下载方式是完全一样的,只要RES设置为正确分辨率即可。

在考虑是否要使用Python重写他的程序的过程中,考虑到这样做需要大量时间,并且一旦加密方式更改,所有的代码将会作废,所以我觉得如果下载漫画的数量不是很大的话,使用保存Canvas的方式也很好,获得图片的质量相同,并且可以应对加密方式变更,甚至可以应用于英文以及中文站点,是一个性价比很高的选择。