Manga_downloader

Manga_downloader

多平台漫画小说一键下载的强大工具

Manga_downloader是一款支持多个热门平台的漫画和小说下载工具。它可以自动下载Bookwalker、DMM等网站的高质量原图,支持批量下载、自动翻页和自定义文件名。最新版本新增了封面下载和页码匹配功能,进一步优化了使用体验。该工具采用定制Chrome浏览器实现,可以轻松获取数字漫画和小说资源。

漫画下载器Manga_downloaderBookwalkerSeleniumChromeGithub开源项目

BW尝试的新方法!

新版本

v0.3.3 (建议更新)

  • 更新到Chromium 112.0.5590.0。
  • 更好地支持BW书籍页码模式,支持小说。

发布页面下载或点击这里:Windows x64 发布版 v0.3.3

v0.3.2

此版本为BW提供了以下优秀功能:

  • 可以下载封面(如果封面图片是jpeg格式,请在分享前检查或最好转换为png格式,因为jpeg文件会包含你的BW账户信息)。
  • 可以使用页码自动命名图片,你可以从任意页面开始,向前或向后进行!
  • 可以使用BW的uuid命名文件夹,不再使用随机命名。
  • 不再跳过空白或重复页面,不再使用图像哈希检查重复页面,性能更佳。

示例截图: 1670681578(1)

如果在下载某些漫画时发现文件名全变成了"cover_or_extra_xxx",请提交bug。可能BW存在我未见过的URL模式或他们改变了模式,应该覆盖这些情况以确保页码正常工作。

发布页面下载或点击这里:Windows x64 发布版 v0.3.2

v0.3.1

此版本改进了保存快照的性能,如果你在下载过程中遇到浏览器变得非常慢的问题,请尝试新版本。

发布页面下载或点击这里:Windows x64 发布版 v0.3.1

v0.3

修复了部分宽度小于800px的漫画无法下载的问题,详见#113

发布页面下载或点击这里:Windows x64 发布版 v0.3

v0.2.1

将Chromium更新至109.0.5393,可能修复了一些问题。

发布页面下载或点击这里:Windows x64 发布版 v0.2.1

v0.2

此版本基于Chromium 106.0.5243.0,变更如下:

  • 支持https://ebook.tongli.com.tw,下载的图片将保存在C:\bw_export_data\TONGLI_URL_STRING
  • 支持https://www.dlsite.com,但这是保存缓存图片,所以最后3~4页应该按以下方式下载(假设有10页):
    • 浏览第1页到第10页(确保当前页面完全加载后再进入下一页)。
    • 你会发现在第10页时,可能只有1-7页的图片。
    • 从第10页返回到第5页,你会发现最后几页已保存。(但可能顺序相反)
    • 目前我们无法做得比这更好。
  • 适用于https://book.dmm.com,使用以下脚本移动页面:
window.i=0;setInterval(()=>{NFBR.a6G.Initializer.views_.menu.options.a6l.moveToPage(window.i);console.log(window.i);window.i++;},3000)

上述脚本适用于DMM,对于BW请使用以下脚本:

window.i=0;setInterval(()=>{NFBR.a6G.Initializer.L7v.menu.options.a6l.moveToPage(window.i);console.log(window.i);window.i++;},3000)
  • BW可能稍快一些,并可能下载一些宽度大于高度的图片。

发布页面下载或点击这里:Windows x64 发布版 v0.2

使用方法(与旧版相同):

  1. 解压BW-downloader-chrome-bin.zip文件。
  2. 打开powershellcmdcd到解压后的浏览器目录。
  3. 使用命令行.\chrome.exe --user-data-dir=c:\bw-downloader-profile --no-sandbox打开浏览器。
  4. 浏览漫画,漫画将保存到C:\bw_export_data

请勿将其用于其他网站,仅用作漫画下载器,它不如普通Chrome浏览器安全!

旧版本

发布页面下载或点击这里:Windows x64 发布版 v0.1

如果你正在寻找下载BW的方法,请尝试这个方法,这真的是个值得尝试的好方法,你会喜欢的!

对于coma,请参见下文。

现在有了一个新方法,使用定制的chromium浏览器,可以非常轻松地下载BW原始图像及其原始尺寸。它可以下载漫画和小说,可能适用于所有使用canvas渲染页面的网站(目前仅在BW上测试过)。 这只是一个开发版本,可能存在漏洞和崩溃问题,但你现在可以下载定制浏览器并尝试使用。

请勿将其用于其他网站,仅作为BW下载器使用,它不如普通Chrome浏览器安全!

克隆此仓库或仅下载BW-downloader-chrome-bin.zip

  1. 解压文件BW-downloader-chrome-bin.zip

  2. 打开powershellcmdcd到解压后的浏览器目录。

  3. 使用命令行.\chrome.exe --user-data-dir=c:\bw-downloader-profile --no-sandbox打开浏览器。

  4. 调整浏览器窗口大小,使其变小并只能显示一个漫画页面,如下例所示 图片

  5. 现在你可以访问BW网站,登录并打开想要下载的漫画,记得在打开前重置漫画的阅读状态。

  6. F12,将其设为单独窗口(见下图),然后运行以下脚本(只需进入console复制粘贴代码,按回车)以自动翻页。如果你的网络良好,可以将3000改为更小的数值,3000表示3000毫秒即3秒,每3秒翻到下一页。

    你也可以手动点击鼠标左键/使用键盘方向键/使用键盘模拟软件来翻页,选择你喜欢的方式,只要确保页面在移动即可。

    window.i=0;setInterval(()=>{NFBR.a6G.Initializer.L7v.menu.options.a6l.moveToPage(window.i);console.log(window.i);window.i++;},3000)

    如果这不起作用并显示'Uncaught TypeError: Cannot read properties of undefined (reading 'menu') at <anonymous>:1:54',说明BW已更新了js,你可以尝试在控制台中寻找,只需尝试NFBR.a6G.Initializer.*.menu不为undefined,其中*是新的对象名;或者你可以提交一个bug。

    图片

  7. 现在你可以查看C:\bw_export_data,你会发现一个随机UUID文件夹,里面包含了所有的漫画图片。 图片

如果你想同时下载多部漫画,只需打开你想要的多个漫画,并执行步骤5到6。

这种方法非常易用、稳定,无需寻找任何分辨率或cookies,而且可以下载没有条形码的真正原始图像。

也许将来会为其添加新的浏览器界面,可以点击下载。

现在可能无法下载封面页。

仅在Windows上构建,目前没有其他平台的程序。

如果你发现任何问题,请提交bug,谢谢!

漫画下载器

一个使用selenium的漫画下载框架。

现在支持以下网站:

  1. Bookwalker.jp
  2. Bookwalker.com.tw
  3. Cmoa.jp

程序会自动检查给定URL的网站

如果你给定的网站不受支持,程序将抛出错误。

现在支持只登录一次就可以下载多部漫画

你需要准备以下信息:

  1. 漫画URL
  2. Cookies
  3. 图片目录(存放图片的位置,文件夹名)
  4. 对于某些网站,你需要查看图片大小并在res中设置。Cmoa.jp不需要这个。

如何使用

所有设置

所有设置都在main.py中。

settings = { # 漫画URL,应该是同一个网站 'manga_url': [ 'URL_1', 'URL_2' ], # 你的cookies 'cookies': '在此处填入你的COOKIES', # 存储漫画的文件夹名,顺序与manga_url相同 'imgdir': [ 'URL_1的IMGDIR', 'URL_2的IMGDIR' ], # 分辨率,(宽度,高度),对于cmoa.jp这不重要。 'res': (1393, 2048), # 每页的睡眠时间(秒),通常不需要更改。 'sleep_time': 2, # 页面加载等待时间(秒),如果你的网络良好,可以减少这个参数。 'loading_wait_time': 20, # 裁剪图片,(左,上,右,下)单位为像素,None表示不裁剪图片。这通常用于裁剪边缘。 # 比如(0, 0, 0, 3)表示从图片底部裁剪3个像素。 'cut_image': None, # 文件名前缀,如果你想要文件名像'klk_v1_001.jpg',在这里写'klk_v1'。 'file_name_prefix': '', # 文件名数字位数,如果你想要文件名像'001.jpg',在这里写3。 'number_of_digits': 3, # 起始页,如果你想从第3页开始下载,将此设置为3,None表示从0开始 'start_page': None, # 结束页,如果你想下载到第10页,将此设置为10,None表示直到结束 'end_page': None, }

安装环境 & 如何获取URL/Cookies

这个程序现在适用于Chrome,如果你使用其他浏览器,请查看此页面

  1. 安装python包_selenium_和_pillow_,并获取_Google chrome驱动程序_。

    1. 对于_selenium_和_pillow_:
    pip install selenium pip install Pillow # 这个undetected_chromedriver是为了防止我们被BW检测到 pip install undetected_chromedriver
    1. 对于Google chrome驱动程序:

      1. 请检查你的Chrome版本,'帮助'->'关于Google Chrome'。

      2. 这里下载适合你Chrome版本的驱动程序。

      3. 将其放入任何文件夹,并将该文件夹添加到PATH中。

    2. 更多信息,我建议你在这里查看

  2. 在main.py中更改IMGDIR以指定存放漫画的位置。

  3. 在程序中添加你的cookies。

    记得使用F12查看cookies!

    因为某些http only cookies无法通过javascript看到!

    记得访问以下链接获取cookies!

    1. 对于[Bookwalker.jp]的cookies,请访问这里

    2. 对于[Bookwalker.com.tw]的cookies,请访问这里

    3. 对于[www.cmoa.jp]的cookies,请访问这里,并且必须使用插件EditThisCookie获取cookies,可以在这里下载Chrome版本。

    • 对于EditThisCookie,可以用于上述任何网站,但对于cmoa,你必须使用以下方法:

      1. 进入EditThisCookie的用户偏好设置(chrome-extension://fngmhnnpilhplaeedifhccceomclgfbg/options_pages/user_preferences.html)
      2. 将cookie导出格式设置为分号分隔的name=value对
      3. 访问cmoa,点击EditThisCookie图标,然后点击导出按钮
      4. 将文件中的cookies(// Example: http://www.tutorialspoint.com/javascript/javascript_cookies.htm之后)复制到程序中
    • 对于传统方式:

      1. 打开页面。
      2. 按F12。
      3. 点击"网络"。
      4. 刷新页面。
      5. 找到第一个"profile"请求,点击它。
      6. 在右侧,会有"请求头",前往那里。
      7. 找到"cookie:...",复制"cookie:"后面的字符串,粘贴到main.py的YOUR_COOKIES_HERE处。
  4. 在main.py中更改manga_url。

    1. 对于[Bookwalker.jp]

      首先前往購入済み書籍一覧,你可以在这里找到所有你的漫画。

      这次的URL是你的漫画**"この本を読む"**按钮的URL。

      右键点击这个按钮,然后点击**"复制链接地址"**。

      URL应以member.bookwalker.jp开头,而不是viewer.bookwalker.jp。这里我们以漫画【期間限定 無料お試し版】あつまれ!ふしぎ研究部 1为例。

      这是あつまれ!ふしぎ研究部 1的URL:https://member.bookwalker.jp/app/03/webstore/cooperation?r=BROWSER_VIEWER/640c0ddd-896c-4881-945f-ad5ce9a070a6/https%3A%2F%2Fbookwalker.jp%2FholdBooks%2F

    2. 对于[Bookwalker.com.tw]

      请前往线上阅读

      漫画URL类似这样:https://www.bookwalker.com.tw/browserViewer/56994/read

    3. 对于[Cmoa.jp]

      打开漫画,直接复制浏览器上的URL。

      漫画URL类似这样:https://www.cmoa.jp/bib/speedreader/speed.html?cid=0000156072_jp_0001&u0=0&u1=0&rurl=https%3A%2F%2Fwww.cmoa.jp%2Fmypage%2Fmypage_top%2F%3Ftitle%3D156072

    将这个URL复制到main.py中的MANGA_URL

  5. 编辑完程序后,运行python main.py来执行。

注意事项

  1. SLEEP_TIME默认为2秒,你可以根据自己的网络情况调整,如果下载时出现重复图片,可以将其改为5或更多。如果你觉得太慢,可以尝试改为1甚至0.5。

  2. LOADING_WAIT_TIME = 20,这是等待漫画浏览器页面加载的时间,如果你的网络不好,可以将其设置为30或50秒。

  3. 分辨率,你可以根据需要更改,但请先检查原始图片的分辨率。

    RES = (784, 1200)

    如果原始图片有更高的分辨率,你可以这样更改(分辨率仅作示例)。

    RES = (1568, 2400)

    对于[Cmoa.jp]不需要这个,分辨率由[Cmoa.jp]固定。

  4. 有时我们需要登出并重新登录,这个网站非常严格,采取了很多方法防止滥用。

  5. 现在你可以通过设置CUT_IMAGE为(左, 上, 右, 下)来裁剪图片。

    例如,如果你想从图片底部裁剪3像素,可以这样设置:

    CUT_IMAGE = (0, 0, 0, 3)

    这个功能使用Pillow,如果你想使用它,需要通过以下命令安装:

    pip install Pillow

    默认为None,表示不裁剪图片。

  6. 你现在可以通过更改file_name_prefixnumber_of_digits来改变文件名前缀和数字位数。

    例如,如果你正在下载《斩服少女》漫画第一卷,你想要文件名像这样:

    <pre> KLK_V1 │--KLK_V1_001.jpg │--KLK_V1_002.jpg │--KLK_V1_003.jpg </pre>

    那么你可以这样设置参数:

    settings = { ..., 'file_name_prefix': 'KLK_V1', # 文件名数字位数,如果你想要文件名像'001.jpg',这里写3。 'number_of_digits': 3 }

开发

  1. 概念

    要下载漫画,通常我们会这样做:

<pre> +------------+ +-----------+ +------------+ +-------------------+ +--------------+ | | | | | | | | 结束 | | | 登录 +-----+ 加载页面 +----->+ 保存图片 +----->+ 移至下一页 +----->+ 完成 | | | | | | | | | | | +------------+ +-----------+ +-----+------+ +---------+---------+ +--------------+ ^ | | | | 还有更多页面 | +-----------------------+ </pre>

因此,我们可以创建一个框架来重复使用代码。对于新网站,通常我们只需要编写一些方法。

  1. 文件结构
<pre> |--main.py │--downloader.py │--README.MD └─website_actions │--abstract_website_actions.py │--bookwalker_jp_actions.py │--bookwalker_tw_actions.py │--cmoa_jp_actions.py │--__init__.py </pre>
  1. 抽象WebsiteActions类介绍

对于每个网站,该类应具有以下方法/属性,这里我们以bookwalker.jp为例:

class BookwalkerJP(WebsiteActions): ''' bookwalker.jp ''' # login_url是我们首先加载并放置cookie的页面。 login_url = 'https://member.bookwalker.jp/app/03/login' @staticmethod def check_url(manga_url): ''' 此方法返回一个布尔值,检查给定的漫画URL是否属于此类。 ''' return manga_url.find('bookwalker.jp') != -1 def get_sum_page_count(self, driver): ''' 此方法返回一个整数,获取总页数。 ''' return int(str(driver.find_element_by_id('pageSliderCounter').text).split('/')[1]) def move_to_page(self, driver, page): ''' 此方法不返回任何内容,移动到给定的页码。 ''' driver.execute_script( 'NFBR.a6G.Initializer.B0U.menu.a6l.moveToPage(%d)' % page) def wait_loading(self, driver): ''' 此方法不返回任何内容,等待漫画加载。 ''' WebDriverWait(driver, 30).until_not(lambda x: self.check_is_loading( x.find_elements_by_css_selector(".loading"))) def get_imgdata(self, driver, now_page): ''' 此方法返回可以写入文件或转换为BytesIO的字符串/内容,获取图像数据。 ''' canvas = driver.find_element_by_css_selector(".currentScreen canvas") img_base64 = driver.execute_script( "return arguments[0].toDataURL('image/jpeg').substring(22);", canvas) return base64.b64decode(img_base64) def get_now_page(self, driver): ''' 此方法返回一个整数,当前页面上的页码 ''' return int(str(driver.find_element_by_id('pageSliderCounter').text).split('/')[0])

我们还有一个before_download方法,这个方法在开始下载之前运行,因为某些网站需要在开始下载之前关闭一些弹出组件。

def before_download(self, driver): ''' 此方法不返回任何内容,在下载之前运行。 ''' driver.execute_script('parent.closeTips()')

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多