CLI使用教程 - ZayrexDev/ACGPicDownload GitHub Wiki

爬取Pixiv

1. 基本格式

<程序> pixiv [全局参数] <子命令> [子命令参数] <子命令> [子命令参数] ...

pixiv 支持链式子命令:多个子命令会按顺序执行,并将上一个子命令的结果作为下一个子命令的输入(如 fetch → complete → filter → download)。

2. 全局参数(作用于 pixiv)

这些参数必须放在第一个子命令之前:

  • -c / -cookie <文件路径>
    读取 Pixiv 登录 Cookie 文件内容(必需,除非子命令不访问 Pixiv)。
  • -p / -proxy <host:port>
    设置代理,例如 127.0.0.1:7890
  • -i / -ignore
    子命令执行出错时继续后续命令(默认遇错终止)。

3. 子命令列表

3.1 fetch(抓取作品列表)

pixiv fetch <模式> [参数...]

支持模式:

1) Discovery 模式(发现)
pixiv fetch -discovery [-m|-mode all|safe|r18] [-c|-count <1~100>] [-a|-append]
  • -m / -modeall | safe | r18
  • -c / -count:数量(1~100)
  • -a / -append:追加到已有列表
2) User 模式(用户作品)
pixiv fetch -user [-u|-uid <用户ID或URL>] [-r|-related <深度>] [-a|-append]
  • -u / -uid:用户 UID,支持完整用户链接
  • -r / -related:关联作品抓取深度(>=0)
  • -a / -append
3) Ranking 模式(排行榜)
pixiv fetch -ranking [-major <daily|weekly|monthly|rookie|original|daily_ai|male|female>] [-minor <illust|manga|ugoira>] [-r18] [-a|-append]
  • -major:榜单主分类
  • -minor:副分类(某些 major 不支持)
  • -r18:启用 R18
  • -a / -append
4) Search 模式(关键词搜索)
pixiv fetch -search [-k|-keyword <关键词>] [-t|-type top|illust|manga] [-m|-mode all|safe|r18] [-p|-page <>=1>] [-s|-suffix <索引或自定义>] [-r|-related <深度>] [-a|-append]
  • -k / -keyword:关键词(必填)
  • -t / -typetop | illust | manga
  • -m / -modeall | safe | r18
  • -p / -page:页码(>=1)
  • -s / -suffix:热度后缀(可用索引 0-9,或直接自定义文字)
  • -r / -related:关联抓取深度
  • -a / -append

3.2 download(下载作品)

pixiv download [-o|-output <目录>] [-t|-threads <>=1>]
  • -o / -output:输出目录(默认 downloads
  • -t / -threads:线程数(>=1)

3.3 save(保存作品列表为 JSON)

pixiv save -o|-output <文件> [-f|-format]
  • -o / -output:输出文件名(必填)
  • -f / -format:格式化 JSON

3.4 load(从 JSON 载入作品列表)

pixiv load -f|-file <文件> [-a|-append]
  • -f / -file:输入文件名(必填)
  • -a / -append:追加到已有列表

3.5 complete(补全作品信息)

pixiv complete [-t|-thread <数量>] [-r|-retry <次数>]
  • -t / -thread:线程数(默认 2)
  • -r / -retry:失败重试次数(默认 5)

3.6 filter(过滤作品)

pixiv filter [-b|-bookmark <最小收藏>] [-v|-view <最小浏览>] [-l|-like <最小点赞>] [-i]
  • -b / -bookmark:最小收藏
  • -v / -view:最小浏览
  • -l / -like:最小点赞
  • -i:忽略不完整数据(默认遇到不完整数据会报错)

Note

使用fetch指令获取的作品都不包含收藏、点赞的信息,所以使用filter过滤前需要先使用complete指令进行补全

3.7 add(手动添加作品 ID)

pixiv add <id1,id2,...> [id3] [id4,...]
  • 支持逗号分隔或空格分隔的 ID
  • 会追加到已有列表

爬取API

要爬取API,需要使用 fetch 指令。

用法:

java -jar ACGPicDownload.jar fetch [参数]

参数列表:

参数名 描述
--list-sources 列出所有已配置的下载源
-s, --source 下载源名 设置需要使用的源,若为空,使用配置下的第一个下载源
-o, --output 保存路径 设置下载目录,若为空,则默认为当前目录
--arg key1=value1,key2=value2,... 自定义URL里的某些参数。 详细请参见url
-m, --max-thread 线程数 设置同时下载的最大文件数,如果不给出线程数,则视为无限制
-t, --times 次数 指定抓取的次数(不建议设置,可能会触发api的数量限制)
-f,--full 同时下载图片的返回json,会保存为与图片同名的json文件下
-p,--proxy 代理地址:端口 设置下载与抓取使用的代理

再具体些...?

直接运行

你可以直接使用命令行运行 ACGPicDownload.jar ,这会使用默认的 lolicon 源...

>java -jar ACGPicDownload.jar fetch

[Fetch] Fetching pictures from https://api.lolicon.app/setu/v2?r18=0&num=1 ...
[Fetch] Got 1 pictures!
[Fetch] Downloading (文件名) to (保存目录) from (下载连接) ...

当运行完成后,你就可以在程序目录下找到下载完成的图片。

添加参数

  1. 首先,使用 --list-sources 查看可用的下载源...

    >java -jar ACGPicDownload.jar fetch --list-sources
    
    [Fetch] Name      |  Description                                                |  URL
    
    [Fetch] lolicon   |  Picture from Lolicon API (api.lolicon.app)                 |  https://api.lolicon.app/setu/v2?{r18=$r18}{&num=$num}{&keyword=$keyword}{&tag=$tag}
    
    [Fetch] dmoe      |  Picture from Dmoe API (dmoe.cc)                            |  https://www.dmoe.cc/random.php
    
    [Fetch] mirlkoi   |  Picture from MirlKoiAPI (api.iw233.cn)                     |  https://iw233.cn/api.php?sort=random&type=json{&num=$num}
    ......

    如果你是第一次运行并且没有配置 sources.json ,那么在执行一次与下载源有关的操作时,程序将会自动复制默认的 sources.json 到程序目录。

  2. 设置自定义参数

    1. 首先,确定下载源

      我们将会在这个例子中使用 lolicon 下载源。

    2. 自定义参数

      lolicon 下载源中,url里面包含的 {&num=$num} 等即为参数块。具体配置可见图源的地址。 我们暂且决定将 num 设置为 5。 并且,我们希望程序下载到程序目录下的 pic 文件夹...

    3. 运行

      根据我们的选择,图源使用 lolicon,将 num 设置为 5,下载到程序目录下的 pic 文件夹,则应该分别加上如下的参数:-s lolicon,-o pic,--arg num=5 那么我们应该这样运行:

      >java -jar ACGPicDownload.jar fetch -s lolicon -o pic --arg num=5
      
      [Fetch] Fetching pictures from https://api.lolicon.app/setu/v2?r18=0&num=5 ...
      [Fetch] Got 5 pictures!
      [Fetch] Downloading (文件名1) to (保存目录) from (下载连接1) ...
      [Fetch] Downloading (文件名2) to (保存目录) from (下载连接2) ...
      [Fetch] Downloading (文件名3) to (保存目录) from (下载连接3) ...
      [Fetch] Downloading (文件名4) to (保存目录) from (下载连接4) ...
      [Fetch] Downloading (文件名5) to (保存目录) from (下载连接5) ...

      当程序运行完成后,你将会看到在程序目录下新增了5张新下载的图片~

⚠️ **GitHub.com Fallback** ⚠️