Pixiv下载器
本来是打算使用idm自带的站点抓取功能去抓取pixiv里面的图片,但是我感觉idm应该是老了,它已经跟不上时代了,尽管它带有填写用户名和密码的选项,但是它登陆不了。就算是你选择手动填写密码,它那自带的浏览器给你爆一堆的错误,然后你就只能看见空白一片,啥用没有。因此,萌生了自己调用pixiv的api来实现对指定的作品进行下载、显示特定标签下的所有作品,以及在不冲vip的情况下实现按照热度排序(还在实现中。。。。。。)
一、获取access_token和refresh_token
在获取这两个token之前,我们得先获取oauth2.0的code。首先准备PKCE参数,即code_challenge和code_verifier,然后使用GET方法,去请求https://app-api.pixiv.net/web/v1/login这个api,请求参数有
你把这些请求参数给他们拼接成一个url,然后粘进浏览器里面,按F12打开开发者模式,选择“网络”,然后登录你的账号,你能看到一堆网络请求,然后找里面带有“code”字样的,后面跟着的一串字符串就是我们要的code。
有了这个code,接下来就可以去请求access_token和refresh_token了,使用POST方式请求https://oauth.secure.pixiv.net/auth/token这个api,然后配置body
正常情况下,你会得到一个json字符串,里面就写有你的access_token和refresh_token,access_token只有1个小时的有效期,但是refresh_token一般情况下是永久有效的,当access_token失效时,我们就要用refresh_token来刷新令牌。当你打算刷新令牌时,用POST方法请求https://oauth.secure.pixiv.net/auth/token这个api,配置body
二、根据作品ID下载特定作品
这回要用GET方式访问https://app-api.pixiv.net/v1/illust/detail这个api,请求参数是illust_id,填入作品的id,然后在Headers中配置User-Agent和Authorization,注意,Authorization是“Bearer ”后面跟着你的access_token。然后你就会得到一串json字符串,在meta_pages或meta_signle_page里面能找到图片的下载链接,然后就下载吧。
文章作者:阴暗的爬行
文章链接:https://blogs.crawlingcrab.cn/archives/pixivxia-zai-qi
版权声明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0 许可协议,转载请注明出处!
评论