GitHub |
您所在的位置:网站首页 › pica官网哔咔下载 › GitHub |
项目简介
一个哔咔漫画的下载程序,基于python实现,欢迎各位绅士来捉虫 目前已实现按 排行榜/收藏夹/指定关键词 进行下载的功能 本项目是基于AnkiKong大佬开源的项目编写的,仅供技术研究使用,请勿用于其他用途,有问题可以提issue 可以fork这个项目,根据api文档自行开发功能 麻烦给个star支持一下:heart: 本地运行漫画直接下载到本地磁盘,免去了邮箱推送这个步骤 需要手动运行,不支持定时运行,适合下载大量漫画 clone项目到本地 把pica_crawler_actions.yml的env中所有环境变量配置到本地 开启科学上网 运行main.py,下载好的漫画在/comics这个文件夹内 git上提交downloaded.txt到远程仓库,避免重复下载 docker 运行新增了环境变量 PACKAGE_TYPE, 参数为 True 和 False 设置为True时, 会根据漫画名称压缩成zip包, 以供 Komga 等漫画库 使用, 也会删除comics文件夹 ( 避免docker容器占用过多硬盘 ) # main.py if os.environ.get("PACKAGE_TYPE", "False") == "True": # 打包成zip文件, 并删除旧数据 zip_subfolders('./comics', './output') shutil.rmtree('./comics')新增了环境变量 REQUEST_PROXY, 这样下载图片时允许使用代理了 # client.py proxy = os.environ.get("REQUEST_PROXY") if proxy: proxies = {'http': proxy, 'https': proxy} else: proxies = None response = self.__s.request(method=method, url=url, verify=False, proxies=proxies, **kwargs) return response新增了环境变量 BARK_URL, bark消息通知 允许打包完成 or 下载完成发送自定义消息, 例: https://api.day.app/{your_keys}/picacg下载成功 # main.py if os.environ.get("BARK_URL"): # 发送消息通知 request.get(os.environ.get("BARK_URL"))可以挂载这两个目录 工作目录为 /app/comics 存放下载漫画图片的文件夹, /app/output 存放输出zip的文件夹 docker-compose.yml 参考 docker-compose.yml 文件 docker cli 最小运行 PICA_SECRET_KEY可以不用更改, 如果需要更改时, 注意是单引号内容 docker部署建议将PACKAGE_TYPE打开, 同时挂载/app/output目录 docker run --name picacg-download-container -d \ -e PICA_ACCOUNT="账户名称" \ -e PICA_PASSWORD="账户密码" \ -e REQUEST_PROXY="http代理(可选)" \ -e BARK_URL="bark消息通知(可选)" \ -e PACKAGE_TYPE="True" \ -e PICA_SECRET_KEY='~d}$Q7$eIni=V)9\RK/P.RM4;9[7|@/CA}b~OW!3?EV`:M7pddUBL5n|0/*Cn' \ -v ./comics:/app/comics \ -v ./output:/app/output \ yuanzhangzcc/picacg-download:latest git actions运行漫画将会以压缩包附件的形式推送到邮箱上,受限于邮件的附件大小,漫画会被打包为若干个压缩包,一次性可能会收到若干个邮件 不同邮箱支持的最大邮件内容不同,qq/新浪是50mb,outlook是20mb,建议用大一点的,避免拆分的压缩包过多下载起来麻烦 支持自动定时运行,适合每天推送少量的漫画 fork本仓库 新增Actions secrets secret 说明 PICA_SECRET_KEY AnkiKong提供的secret_key PICA_ACCOUNT 哔咔登录的账号 PICA_PASSWORD 哔咔登录的密码 EMAIL_ACCOUNT 接收漫画的邮箱 BARK_URL 允许打包完成 or 下载完成发送自定义消息 例: https://api.day.app/{your_keys}/picacg下载成功 EMAIL_AUTH_CODE 邮箱的授权码,参考qq邮箱的这篇文档 GIT_TOKEN 参考这篇文章,只勾选repo的权限,Expiration设置为No Expiration 打开fork项目的workFlow开关 点击pica_crawler_actions.yml,编辑git actions. 写了注释的配置项,都可以根据需求改动 手动触发一次,测试下能不能跑通成功运行的截图: 成功运行后,可以在这里下载到漫画的压缩包. 如果配置了邮箱推送功能,还可以查收邮件里的附件 我自己也fork了一份,每天都在自动运行的,可以通过这个项目的actions运行记录判断这个项目是否还能work 解压注意事项 将所有邮件的压缩包下载至统一目录. (存在单个压缩包里可能只有半本漫画的情况),然后全选压缩包,右键解压到当前文件夹. 如果你在上个步骤选择右键解压文件,默认是以压缩包名创建一个新的文件夹,会出现漫画拆散在不同文件夹的情况 压缩包默认zip格式,无解压密码.遇到解不开的情况可能是下载时压缩包损坏了,尝试下重新下载 下载的范围 排行榜哔咔24小时排行榜内的所有漫画 收藏夹收藏夹内的所有漫画,下载完成后会自动取消收藏 关键词订阅SUBSCRIBE_KEYWORD里配置若干个关键词,下载范围等同于在哔咔app里用关键词搜索到的所有漫画 这个功能可能会下载过量的漫画,导致邮箱无法推送,可以调整SUBSCRIBE_DAYS缩小下载范围,或者是本地运行main.py 部分漫画不会被下载的原因排行榜/订阅的漫画会受到以下过滤逻辑的影响,收藏夹则不会(如果下载到本地后文件丢失了,可以通过放入收藏夹把它全量下载下来) 过滤重复下载downloaded.txt文件记录了已下载的漫画id, run_time_history.txt文件记录了每次运行的时间. 排行榜上已下载过的漫画会触发增量下载,跳过曾下载过的章节,其余所有情况都是全量下载所有章节. 每次运行代码后,都会通过git actions的指令提交代码,保存本次的运行结果.GIT_TOKEN配置错误将导致提交代码失败,这会导致漫画被重复下载和推送 过滤分区支持通过分区自定义下载逻辑. git actions配置文件的CATEGORIES配置项可以配置0~n个哔咔的分区, 配置为空则代表不过滤 CATEGORIES_RULE可以配置为 INCLUDE: 包含任意一个分区就下载 EXCLUDE: 包含任意一个分区就不下载 部分漫画只打上了'短篇'/'长篇'这样单个分区,在配置为INCLUDE时,建议把比较常见的分区给填上,不然容易匹配不到漫画 订阅的时间范围对于订阅的漫画,如果 当天 - 订阅漫画的上传日 > SUBSCRIBE_DAYS,这本漫画将不再被下载 结尾清心寡欲在平时,坚守临期凛四知,鸩酒岂堪求止渴,光明正大好男儿:thumbsup: CHANGELOG 日期 说明 2024/05/15 增加了INTERVAL_TIME下载时间间隔参数, 修复了日志不会实时输出的问题 2023/10/02 1.补充了上次更新没写进去的运行时间的保存逻辑:laughing: 2.改用total_seconds()判断时间差,seconds算出来的结果有误 3.修复了分卷压缩函数KeyError的问题--创建的压缩包个数 = 文件总大小/压缩包的最大大小,但分卷压缩时每个包都不会被填满的,导致实际需要更多的包 2023/09/12 修复了漫画曾被下载一次后, 新增章节无法被下载的bug. 现在记录了上次运行的时间, 与漫画章节的上传时间进行比对, 有新章节时则触发增量下载 2023/03/28 修复了调用分页获取章节接口时,只获取了第一页的bug,这会导致总章节数>40的漫画下载不全 2023/02/03 参考了jiayaoO3O/18-comic-finder,现在可以在git actions上下载到完整的压缩包 2023/02/01 1.区分了git actions和本地运行两种运行方式 2.新增按关键词订阅功能 3.调整了邮箱的配置项,支持指定加密方式和端口 4.引入狗屁不通文章生成邮件正文的随机字符串 2023/01/06 基于git actions重构了代码,并采用了邮件的形式推送漫画 2022/12/08 启动项目时自动打卡 2022/11/27 实现按排行榜以及收藏夹进行下载的功能 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |