ccruiの博客

ccruiの博客

pixiv插画下载器

35
2020-08-03

pixiv插画下载器

[collapse status="false" title="目录"]

[/collapse]

引言

今天在给我图床壁纸相册找图片的时候,想从p站上下载喜欢画手的图片来上传到个人图床。
但是p站的图片直链因为一些 众所周知 的原因无法直接被我部署在阿里云服务器的图床服务解析上传,于是我想到了找批量下载工具,在本地下载好再手动上传图床。
于是我找到了pixiv downloader,可以在 Linuxwindows 平台上批量下载pixiv的图片

项目地址

https://github.com/Tsuk1ko/pxder

下载

pixiv downloader 可以根据指定画师 UID 解析并下载插画(包括动图)、一键下载所有你关注的画师的插画或收藏的插画、智能增量更新下载过的画师的插画。

并且支持使用多线程下载,与 HTTP SOCKS 代理下载。

准备

使用软件第一步,需要在电脑或服务器上安装Node.js

[tabs]
[tab name="Windows" active="true"]

Windows

打开官网 => 下载左边的 LTS 版本 => 安装一路确定

[/tab]
[tab name="Linux"]

Linux

# Ubuntu
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

# Debian
curl -sL https://deb.nodesource.com/setup_12.x | bash -
apt-get install -y nodejs

# Centos
curl -sL https://rpm.nodesource.com/setup_12.x | bash -
yum install nodejs -y

[/tab]
[/tabs]

安装/更新/卸载

Windows 下打开命令提示符或者Powershell,执行下面的命令,即可安装或者更新(注:后续命令皆为在此执行)

npm i -g pxder

如需卸载,执行

npm uninstall -g pxder

安装

配置

登录

!> 注意:若本机无法直连pixiv服务器,会出现登录失败的报错,若出现报错请参考下文设置-使用代理

pxder --login

登录

然后会让你输入用户名密码,登录成功一次后以后如果没有出什么bug则无需再次登录

注:pxder 仅会在计算机上储存 refreshAccessToken,而不会储存您的帐号密码

如果要登出

pxder --logout

设置

进入 Pxder 的设置界面

pxder --setting

有六项设置,按下数字键选择一项进行设置

[1] Download path           # 下载目录,必须设置
[2] Download thread         # 下载线程数
[3] Download timeout        # 下载超时
[4] Auto rename             # 自动重命名(文件夹)
[5] Proxy                   # 使用代理
[6] Direct mode             # 直连模式

设置

  • 下载目录
    请注意相对路径与绝对路径的区别,不过不用担心,输入完路径后会显示绝对路径以方便你检查
    目录无需手动建立,下载图片的时候会自动建立
    !> 输入路径中切勿输入中文!!! 否则会导致路径错误!!!

    路径错误
    路径错误

  • 下载线程数
    即同时下载的图片数,默认为5,最小为1,最大为32
    下载图片时最左侧的一列实际上就是线程编号

  • 下载超时及重试
    如果这么多秒之后一张图还没被下载完则算作超时,超时后会自动重试,默认值为30
    下载图片时如果线程编号是黄色底的就代表此次是重试
    重试超过10次则视作下载失败

  • 自动重命名
    开启了以后,例如这个画师原来叫abc,今天你再次去下载(更新)他的画作,但是他改名叫def了,那么程序会自动帮你重命名画师文件夹

  • 使用代理
    支持使用 HTTP 或 SOCKS 代理,即可以使用小飞机
    输入格式为<协议>://[用户名:密码@]<IP>:<端口>,例如:

    • http://user:passwd@127.0.0.1:1080
    • socks://127.0.0.1:1080(如果你使用小飞机则直接填这个,除非你改过本地端口)
  • 直连模式
    利用域前置(Domain Fronting)绕过 SNI 审查,达到直连使用的目的
    启用后,将会忽略代理设置

使用

(1) 下载或更新某画师的所有插画作品

使用-u--uid参数,后跟画师的 UID,可单个可多个,如果多个则用英文半角逗号隔开

pxder -u uid1,uid2,uid3,...

例如

pxder -u 5899479,724607,11597411

下载或更新某画师的所有插画作品

(2) 下载或更新你关注的所有画师的所有插画作品

该操作同时也会更新已下载的关注画师的作品,并且效率远高于 (3),比较推荐使用

会自动排除 pixiv事務局 (uid=11)

由于收集关注信息需时较久,因此特地针对该功能做了信息缓存:如果你在下载中途退出,那么下次使用该功能时并不需要重新收集,而是利用上次的缓存立即继续下载。

  • 公开关注与私密关注的缓存是分开的,互不干扰
  • 如果你需要强制重新收集画师信息(忽略上次的缓存),请在运行命令时加入--force参数

公开关注的画师

pxder -f
# 或
pxder --follow

私密关注的画师

pxder -F
# 或
pxder --follow--private

(3) 更新已下载的画师的画作

会对下载目录中检测到的所有下载过的画师的插画进行增量更新下载

与 (2) 的区别是可以更新你使用 (1) 下载了的但是未关注的画师的插画,但是效率远低于 (2)

pxder -U
# 或
pxder --update

(4) 下载或更新你的收藏中的插画作品

公开收藏

插画会被下载至[bookmark] Public文件夹中

pxder -b
# 或
pxder --bookmark

私密收藏

插画会被下载至[bookmark] Private文件夹中

pxder -B
# 或
pxder --bookmark--private

(5) 根据指定 PID 下载插画

插画会被下载至PID文件夹中

pxder -p pid1,pid2,pid3,...

例如

pxder -p 70593670,70594912,70595516