From e6b254499800d7f8a0f255ec0b0cbe4cc06b1162 Mon Sep 17 00:00:00 2001 From: LamGC Date: Sat, 6 Jun 2020 17:53:37 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documents/interfaces/Pixiv作品信息获取接口.md | 108 ++++++ documents/interfaces/Pixiv排行榜接口.md | 27 +- documents/interfaces/Pixiv接口文档模板.md | 32 ++ documents/interfaces/Pixiv搜索接口.md | 317 +++++++++++++++++- documents/interfaces/Pixiv首页数据接口.md | 14 +- 5 files changed, 481 insertions(+), 17 deletions(-) create mode 100644 documents/interfaces/Pixiv作品信息获取接口.md create mode 100644 documents/interfaces/Pixiv接口文档模板.md diff --git a/documents/interfaces/Pixiv作品信息获取接口.md b/documents/interfaces/Pixiv作品信息获取接口.md new file mode 100644 index 0000000..c8c759f --- /dev/null +++ b/documents/interfaces/Pixiv作品信息获取接口.md @@ -0,0 +1,108 @@ +## Pixiv作品信息批量获取接口 ## +### 说明 ### +接口可一次获取多个作品的基础信息 + + +### 接口地址 ### +``` +GET https://www.pixiv.net/ajax/illust/recommend/illusts +``` + +- 需要登录: `否` +- 是否为Pixiv接口标准返回格式: `是` +### 参数 ### +- `illust_ids[]`: 作品Id, 可重复添加该参数 + + +### 请求示例 ### +``` +GET https://www.pixiv.net/ajax/illust/recommend/illusts?illust_ids[]=82030844&illust_ids[]=82029098&illust_ids[]=82028913 +``` + +### 返回数据 ### +#### 数据示例 #### +```json +{ + "error":false, + "message":"", + "body":{ + "illusts":[ + { + "illustId":"82030844", + "illustTitle":"3rd anniversary", + "id":"82030844", + "title":"3rd anniversary", + "illustType":0, + "xRestrict":0, + "restrict":0, + "sl":2, + "url":"https:\/\/i.pximg.net\/c\/360x360_70\/custom-thumb\/img\/2020\/06\/02\/11\/24\/49\/82030844_p0_custom1200.jpg", + "description":"", + "tags":[ + "\u30a2\u30ba\u30fc\u30eb\u30ec\u30fc\u30f3", + "\u6bd4\u53e1(\u30a2\u30ba\u30fc\u30eb\u30ec\u30fc\u30f3)", + "\u6c34\u7740", + "\u8db3\u88cf", + "\u88f8\u8db3", + "\u30a2\u30ba\u30fc\u30eb\u30ec\u30fc\u30f35000users\u5165\u308a", + "\u30a2\u30ba\u30fc\u30eb\u30ec\u30fc\u30f310000users\u5165\u308a", + "\u30dd\u30cb\u30fc\u30c6\u30fc\u30eb", + "\u30db\u30eb\u30bf\u30fc\u30cd\u30c3\u30af"], + "userId":"6662895", + "userName":"ATDAN-", + "width":1500, + "height":844, + "pageCount":1, + "isBookmarkable":true, + "bookmarkData":null, + "alt":"#\u30a2\u30ba\u30fc\u30eb\u30ec\u30fc\u30f3 3rd anniversary - ATDAN-\u7684\u63d2\u753b", + "isAdContainer":false, + "titleCaptionTranslation":{ + "workTitle":null, + "workCaption":null + }, + "createDate":"2020-06-02T01:29:40+09:00", + "updateDate":"2020-06-02T11:24:49+09:00", + "profileImageUrl":"https:\/\/i.pximg.net\/user-profile\/img\/2016\/01\/11\/21\/46\/50\/10371466_80f6ad67eab3b8abd44a2fb74ddd1ba1_50.jpg", + "type":"illust" + }, // ... + ] + } +} + +``` +#### 参数详解 #### +- `illusts`: (`Object[]`) 存储查询作品信息的数组 + - `illustId`: (`string` -> `number`) 作品Id + - `illustTitle`: (`string`) 作品标题 + - `id`: (`string` -> `number`) 与`illustId`一致, 猜测是以兼容旧版本为目录而存在 + - `title`: (`string`) 与`illustTitle`一致, 猜测是以兼容旧版本为目录而存在 + - `illustType`: (`number`) 作品类型 + - `0`: 插画作品 + - `1`: 漫画作品 + - `2`: 动图作品 + - `xRestrict`: (`number`) 作品是否为限制级, 基本准确, 少部分不一定(看Pixiv审核怎么理解了) + - `0`: 非限制级内容(即非R18作品) + - `1`: 限制级内容(即R18作品) + - `restrict`: (`number`) 作品限制级(意义不明, 可能是兼容性问题?)? + - `sl`: (`number`) 不明? + - `url`: (`string`) 作品预览图链接, 需要`Referer`请求头 + - `description`: (`string`) 作品说明 + - `tags`: (`string[]`) 作品标签数组 + - `userId`: (`string` -> `number`) 作者用户Id + - `userName`: (`string`) 作者用户名 + - `width`: (`number`) 作品长度 + - `height`: (`number`) 作品高度 + - `pageCount`: (`number`) 作品页数 + - `isBookmarkable`: (`boolean`) 不明? + - `alt`: (`string`) 简略介绍信息(在图片加载失败时可提供给`img`标签使用) + - `isAdContainer`: (`boolean`) 不明? + - `titleCaptionTranslation`: (`Object`) 不明? + - `workTitle`: (`Unknown`) 不明? + - `workCaption`: (`Unknown`) 不明? + - `createDate`: (`string`) 作品创建时间(或者是完成时间?) + - `updateDate`: (`string`) 作品上传时间 + - `profileImageUrl`: (`string`) 作者用户头像图片链接 + - `type`: (`string`) 作品类型名 + + diff --git a/documents/interfaces/Pixiv排行榜接口.md b/documents/interfaces/Pixiv排行榜接口.md index fcba69d..dfd7c06 100644 --- a/documents/interfaces/Pixiv排行榜接口.md +++ b/documents/interfaces/Pixiv排行榜接口.md @@ -5,7 +5,9 @@ GET https://www.pixiv.net/ranking.php ``` -- 需要登录: `是` +- 是否需要登录: `是` +- 是否为Pixiv标准接口返回格式: `否` +- 是否需要Referer请求头: `否` ### 参数 ### > 提示: 该接口参数较为复杂,请结合表格查看 @@ -113,7 +115,7 @@ female_r18|`√`|×|×|× } ``` -#### 参数详解 #### +#### 字段说明 #### - `contents`: (`Object[]`) 排行榜数组, 最多50行排行榜信息 - `illust_id`: (`number`) 作品Id - `title`: (`string`) 作品标题 @@ -126,9 +128,24 @@ female_r18|`√`|×|×|× - `user_name`: (`string`) 画师用户名 - `user_id`: (`number`) 画师用户Id - `profile_img`: (`string`) 画师用户头像 - - `illust_content_type`: (`Object`) 作品内容信息 - - 待补充 - - `illust_series`: (`boolean`) 不明? + - `illust_content_type`: (`Object`) 作品内容信息(警告: 文档内容仅作为开发参考, 并不传播相关内容!!!) + - `sexual`: (`number`) 作品内容分级 + - `0`: 全年龄 + - `1`: 青少年 + - `2`: 成人级 + - `lo`: (`boolean`) 是否为loli作品 + - `grotesque`: (`boolean`) 是否为怪诞作品 + - `violent`: (`boolean`) 作品是否含有暴力/强暴相关元素 + - `homosexual`: (`boolean`) 作品是否含有同性恋相关元素 + - `drug`: (`boolean`) 作品是否含有药物相关元素 + - `thoughts`: (`boolean`) 作品是否含有思维/记忆相关元素(这个属性翻译起来有些问题, 待纠正)? + - `antisocial`: (`boolean`) 作品是否含有反社会, 令人厌恶的相关元素 + - `religion`: (`boolean`) 作品是否含有宗教, 信仰相关元素 + - `original`: (`boolean`) 作品是否为原创作品 + - `furry`: (`boolean`) 作品是否有兽人相关元素 + - `bl`: (`boolean`) 作品是否有耽美相关元素 + - `yuri`: (`boolean`) 作品是否有百合相关元素 + - `illust_series`: (`boolean`) 是否为系列作品 - `width`: (`number`) 作品宽度(建议以原图为准) - `height`: (`number`) 作品高度(建议以原图为准) - `rank`: (`number`) 本期排行榜排名 diff --git a/documents/interfaces/Pixiv接口文档模板.md b/documents/interfaces/Pixiv接口文档模板.md new file mode 100644 index 0000000..16d06cd --- /dev/null +++ b/documents/interfaces/Pixiv接口文档模板.md @@ -0,0 +1,32 @@ +## 接口名 ## +### 说明 ### + +### 接口地址 ### +``` +GET/POST https://www.pixiv.net/... +``` + +- 是否需要登录: `是/否` +- 是否为Pixiv标准接口返回格式: `是/否` +- 是否需要Referer请求头: `是/否` + +### 参数 ### + +### 请求示例 ### +``` +GET/POST +---- Request Body ---- // 如果没有, 可以不写, 如没有记得删除 + +``` + +### 返回数据 ### +#### 数据示例 #### +```json +// Object[] 中只留一个, 其他删除后保留逗号, 增加 '// ...' 注释 + +``` +#### 字段说明 #### +- `属性名`: (`JS类型`) 属性说明 + - `对象属性名`: (`原始JS类型` -> `可转换JS类型`) 属性说明 +- `属性名`: (`JS类型1` / `JS类型2` / ...) 属性说明, 需要清晰说明在什么情况下类型为`JS类型1`, 什么情况下是`JS类型2`. +- `不明属性`: (`Unknown`) 如果属性用途不明, 则在说明后面加上`?`符号, 类型不明则填`Unknown`. diff --git a/documents/interfaces/Pixiv搜索接口.md b/documents/interfaces/Pixiv搜索接口.md index 2547272..3ff9456 100644 --- a/documents/interfaces/Pixiv搜索接口.md +++ b/documents/interfaces/Pixiv搜索接口.md @@ -9,9 +9,12 @@ GET https://www.pixiv.net/ajax/search/{Type}/{Content}?{Param...} ``` -- 需要登录: `是` +- 是否需要登录: `是/否` +- 是否为Pixiv标准接口返回格式: `是/否` +- 是否需要Referer请求头: `否` -### Url参数 ### +### 参数 ### +#### Url参数 #### - `Type`: 内容类型 - illustrations(插画) - top(推荐) @@ -19,8 +22,8 @@ GET https://www.pixiv.net/ajax/search/{Type}/{Content}?{Param...} - novels(小说) - `Content`: 搜索内容 -### 参数 ### -#### 必填 #### +#### GET参数 #### +##### 必填 ##### - `word`: 与搜索内容一致 (经测试似乎可以省略) - `s_mode`: 匹配模式 - `s_tag`: 标签,部分一致 @@ -42,7 +45,7 @@ GET https://www.pixiv.net/ajax/search/{Type}/{Content}?{Param...} - `safe`: 排除成人内容 - `r18`: 仅成人内容 -#### 选填 #### +##### 选填 ##### - `wlt`: 作品最低宽度(px) - `wgt`: 作品最高宽度(px) - `hlt`: 作品最低高度(px) @@ -56,3 +59,307 @@ GET https://www.pixiv.net/ajax/search/{Type}/{Content}?{Param...} - `scd`: 过滤作品发布时间 - 结束时间(yyyy-MM-dd) - `(Unknown)`: 最小收藏数 (该参数为会员限定功能,后续补充) +### 返回数据 ### +#### 数据示例 #### +```json +{ + "error":false, + "body":{ + "illustManga":{ + "data":[ + { + "illustId":"82130571", + "illustTitle":"空の絵", + "id":"82130571", + "title":"空の絵", + "illustType":0, + "xRestrict":0, + "restrict":0, + "sl":2, + "url":"https:\/\/i.pximg.net\/c\/250x250_80_a2\/img-master\/img\/2020\/06\/06\/17\/51\/14\/82130571_p0_square1200.jpg", + "description":"", + "tags":[ + "風景", + "空", + "草", + "雲"], + "userId":"31507675", + "userName":"昏omeme", + "width":1600, + "height":1600, + "pageCount":2, + "isBookmarkable":true, + "bookmarkData":null, + "alt":"#風景 空の絵 - 昏omeme的插画", + "isAdContainer":false, + "titleCaptionTranslation":{ + "workTitle":null, + "workCaption":null + }, + "createDate":"2020-06-06T17:51:14+09:00", + "updateDate":"2020-06-06T17:51:14+09:00", + "profileImageUrl":"https:\/\/i.pximg.net\/user-profile\/img\/2020\/05\/06\/19\/21\/04\/18509741_e3166e69809c44d6926454ecaac89590_50.png" + }, // ... + ], + "total":165875, + "bookmarkRanges":[ + { + "min":null, + "max":null + }, + { + "min":10000, + "max":null + }, + { + "min":5000, + "max":null + }, + { + "min":1000, + "max":null + }, + { + "min":500, + "max":null + }, + { + "min":300, + "max":null + }, + { + "min":100, + "max":null + }, + { + "min":50, + "max":null + } + ] + }, + "popular":{ + "recent":[ + { + "illustId":"82062770", + "illustTitle":"Still you remember", + "id":"82062770", + "title":"Still you remember", + "illustType":0, + "xRestrict":0, + "restrict":0, + "sl":2, + "url":"https:\/\/i.pximg.net\/c\/250x250_80_a2\/img-master\/img\/2020\/06\/03\/18\/02\/15\/82062770_p0_square1200.jpg", + "description":"", + "tags":[ + "オリジナル", + "女の子", + "カラス", + "风景", + "線路"], + "userId":"1069005", + "userName":"へちま", + "width":2000, + "height":1415, + "pageCount":1, + "isBookmarkable":true, + "bookmarkData":null, + "alt":"#オリジナル Still you remember - へちま的插画", + "isAdContainer":false, + "titleCaptionTranslation":{ + "workTitle":null, + "workCaption":null + }, + "createDate":"2020-06-03T18:02:15+09:00", + "updateDate":"2020-06-03T18:02:15+09:00", + "profileImageUrl":"https:\/\/i.pximg.net\/user-profile\/img\/2013\/05\/10\/00\/38\/05\/6213543_c94edc0d13776214467bd0c47ee6491a_50.jpg" + }, // ... + ], + "permanent":[ + { + "illustId":"60993044", + "illustTitle":"無題", + "id":"60993044", + "title":"無題", + "illustType":0, + "xRestrict":0, + "restrict":0, + "sl":2, + "url":"https:\/\/i.pximg.net\/c\/250x250_80_a2\/img-master\/img\/2017\/01\/18\/13\/07\/46\/60993044_p0_square1200.jpg", + "description":"", + "tags":[ + "少女", + "女の子", + "原创", + "オリジナル", + "场景", + "落書き", + "創作", + "背景", + "风景", + "オリジナル7500users入り"], + "userId":"18811972", + "userName":"淅洵", + "width":3507, + "height":2480, + "pageCount":1, + "isBookmarkable":true, + "bookmarkData":null, + "alt":"#少女 無題 - 淅洵的插画", + "isAdContainer":false, + "titleCaptionTranslation":{ + "workTitle":null, + "workCaption":null + }, + "createDate":"2017-01-18T13:07:46+09:00", + "updateDate":"2017-01-18T13:07:46+09:00", + "profileImageUrl":"https:\/\/i.pximg.net\/user-profile\/img\/2017\/05\/29\/17\/17\/49\/12623968_6cf3f1979e10643425972ae205a7920d_50.jpg" + }, // ... + ] + }, + "relatedTags":[ + "風景", + "背景", + "風景画", + "空", + "雲", + "創作", + "ファンタジー", + "夏", + "青", + "建物", + "青空", + "少女", + "東京", + "抽象画", + "男の子", + "透明水彩" + ], + "tagTranslation":{ + "風景":{ + "zh":"风景" + }, + "背景":{ + "zh":"background" + }, + "風景画":{ + "zh":"landscape painting" + }, + "空":{ + "zh":"sky" + }, + "雲":{ + "zh":"云" + }, + "創作":{ + "zh":"原创" + }, + "ファンタジー":{ + "zh":"奇幻" + }, + "夏":{ + "zh":"夏天" + }, + "青":{ + "zh":"蓝" + }, + "建物":{ + "zh":"building" + }, + "青空":{ + "zh":"蓝天" + }, + "少女":{ + "zh":"young girl" + }, + "東京":{ + "zh":"tokyo" + }, + "抽象画":{ + "zh":"abstract art" + }, + "男の子":{ + "zh":"男孩子" + }, + "透明水彩":{ + "zh":"transparent watercolor" + } + }, + "zoneConfig":{ + "header":{ + "url":"https:\/\/pixon.ads-pixiv.net\/show?zone_id=header&format=js&s=1&up=0&a=22&ng=g&l=zh&uri=%2Fajax%2Fsearch%2Fartworks%2F_PARAM_&is_spa=1&K=59bba275c645c&ab_test_digits_first=20&yuid=FwdzEnA&suid=Pgfip96ymw5tvu9l9&num=5edb6277927" + }, + "footer":{ + "url":"https:\/\/pixon.ads-pixiv.net\/show?zone_id=footer&format=js&s=1&up=0&a=22&ng=g&l=zh&uri=%2Fajax%2Fsearch%2Fartworks%2F_PARAM_&is_spa=1&K=59bba275c645c&ab_test_digits_first=20&yuid=FwdzEnA&suid=Pgfip96yn1fgocj2&num=5edb6277775" + }, + "infeed":{ + "url":"https:\/\/pixon.ads-pixiv.net\/show?zone_id=illust_search_grid&format=js&s=1&up=0&a=22&ng=g&l=zh&uri=%2Fajax%2Fsearch%2Fartworks%2F_PARAM_&is_spa=1&K=59bba275c645c&ab_test_digits_first=20&yuid=FwdzEnA&suid=Pgfip96yn4t7cho88&num=5edb6277137" + } + }, + "extraData":{ + "meta":{ + "title":"#风景のイラスト・マンガ作品(投稿超过10万件) - pixiv", + "description":"pixiv", + "canonical":"https:\/\/www.pixiv.net\/tags\/%E9%A3%8E%E6%99%AF", + "alternateLanguages":{ + "ja":"https:\/\/www.pixiv.net\/tags\/%E9%A3%8E%E6%99%AF", + "en":"https:\/\/www.pixiv.net\/en\/tags\/%E9%A3%8E%E6%99%AF" + }, + "descriptionHeader":"pixiv" + } + } + } +} +``` +#### 字段说明 #### +- `novel`: (`Object`) 小说搜索结果 + - `data`: (`Object`) 搜索结果(仅当前页数) + - (待补充) + - `total`: (`number`) 搜索结果总量 +- `popular`: (`Object`) 受欢迎的搜索结果 +- `relatedTags`: (`string[]`) 与搜索结果相关的标签 +- `tagTranslation`: (`Object`) 相关标签的翻译信息 + - `{Attr: 标签名}`: 标签名为属性名 + - `语言名(例如 中文是 zh)`: (`string`) 标签翻译名 +- `zoneConfig`: (`Object`) 猜测是广告相关信息? +- `extraData`: (`Object`) 扩展信息 + - `meta`: (`Object`) 网页元数据 + - `title`: (`string`) 网页标题 + - `description`: 搜索结果说明内容 + - `descriptionHeader`: (`string`) 说明内容的Html代码 + - `alternateLanguages`: (`Object`) 不明链接? + - `{语言名}`: 对应语言的链接 +- `illustManga`: (`Object`) 漫画和插画的搜索结果 + - `total`: (`number`) 搜索结果总量 + - `data`: (`Object[]`) 搜索结果(仅当前页数) + - `illustId`: (`string` -> `number`) 作品Id + - `illustTitle`: (`string`) 作品标题 + - `id`: (`string` -> `number`) 与`illustId`一致, 猜测是以兼容旧版本为目录而存在 + - `title`: (`string`) 与`illustTitle`一致, 猜测是以兼容旧版本为目录而存在 + - `illustType`: (`number`) 作品类型 + - `0`: 插画作品 + - `1`: 漫画作品 + - `2`: 动图作品 + - `xRestrict`: (`number`) 作品是否为限制级, 基本准确, 少部分不一定(看Pixiv审核怎么理解了) + - `0`: 非限制级内容(即非R18作品) + - `1`: 限制级内容(即R18作品) + - `restrict`: (`number`) 作品限制级(意义不明, 可能是兼容性问题?)? + - `sl`: (`number`) 不明? + - `url`: (`string`) 作品预览图链接, 需要`Referer`请求头 + - `description`: (`string`) 作品说明 + - `tags`: (`string[]`) 作品标签数组 + - `userId`: (`string` -> `number`) 作者用户Id + - `userName`: (`string`) 作者用户名 + - `width`: (`number`) 作品长度 + - `height`: (`number`) 作品高度 + - `pageCount`: (`number`) 作品页数 + - `isBookmarkable`: (`boolean`) 不明? + - `bookmarkData`: (`Unknown`) 不明? + - `alt`: (`string`) 简略介绍信息(在图片加载失败时可提供给`img`标签使用) + - `isAdContainer`: (`boolean`) 不明? + - `titleCaptionTranslation`: (`Object`) 不明? + - `workTitle`: (`Unknown`) 不明? + - `workCaption`: (`Unknown`) 不明? + - `createDate`: (`string`) 作品创建时间(或者是完成时间?) + - `updateDate`: (`string`) 作品上传时间 + - `profileImageUrl`: (`string`) 作者用户头像图片链接 + \ No newline at end of file diff --git a/documents/interfaces/Pixiv首页数据接口.md b/documents/interfaces/Pixiv首页数据接口.md index befe573..2e6f150 100644 --- a/documents/interfaces/Pixiv首页数据接口.md +++ b/documents/interfaces/Pixiv首页数据接口.md @@ -21,21 +21,21 @@ GET https://www.pixiv.net/ajax/top/{type}?mode={mode}&lang={lang} - `lang`: 语言(只写几个) - `zh`: 中文 -> 是否需要登录: `是` -> 是否为Pixiv接口标准返回格式: `是` -> 是否需要Referer请求头: `未知` +- 是否需要登录: `是` +- 是否为Pixiv接口标准返回格式: `是` +- 是否需要Referer请求头: `是` -请求Url示例: +### 请求示例 ### ``` GET https://www.pixiv.net/ajax/top/illust?mode=all&lang=zh ``` -响应示例: +### 返回数据 ### +#### 数据示例 #### ``` (内容过长, 略) ``` - -返回内容(Json): +#### 字段说明 #### - `page`: 网页相关内容 - `tags`: (`Object[]`) 热门标签 - `tag`: (`String`) 标签名