pixivのURLについて
副題
pixivのスクレイビングをしたかったけどうまくいってない話
目次
目的
現在自室には裏でデータ収集を行っているラズベリーパイが転がっています。
もったいないと思って時計にしてみましたが、 なんか物がなしい、、
背景に画像とか写したい。
いっそのこと好きなキャラクターの画像なら尚いい、、
画像をループさせるのは飽きそうでなんかいや、
以上の理由から、、
pixiv上の(特定の)画像を自動で取得して表示してくれるようにしよう!!!!
使用する物
python3 :一番使い慣れている言語
rasupberry pi3 modelB:転がってたマイコン
先行記事
python,pixivで調べると、どうやらライブラリがあるらしいが、
個人的な興味から、 今回は用いずにスクレイビングでダウンロードすることにした。
pixivのURLについて
でありその下にパスを追加することで各画面へとアクセスすることが可能である。
ホーム画面のを除き、次のパスが存在する。
- /tags
- /user
- /artwork
- /novel
それぞれ説明をしていこう。
/tag
検索画面にアクセスするためのpath
tag下に検索ワードを追加することで、 その文字で検索を行った結果が出てくる。
例えば、アルビノのイラストについて調べたい場合は以下のようになる。
複数の条件で検索する場合、"%20(スペース)"にて接続してやれば良い。
また、このURLの下に/illustrations
と追加すればイラストのみに、
/manga
と追加すれば漫画のみになど、wordを追加することで、
検索対象を絞ることができる。
/users
ユーザー画面にアクセスするためのpath
pixivではユーザそれぞれに一意なIDが割り振られている。(そのためこの手のSNSには珍しく、ユーザ名の被りが許容されている、)
users下にユーザーIDを追加することで、 対応したユーザーのユーザー画面を取得することが可能である。
https://www.pixiv.net/users/[user_ID]
上記の/tagsとは異なり、事前にユーザーIDを取得しておく必要がある。
ユーザ名はユーザページのURLから取得可能。
例えば、pixiv事務局のユーザーIDは11のため以下のようになる。
https://www.pixiv.net/users/11
ちなみに、最小のユーザIDは10でユーザ名は馬骨(創始者の上谷隆宏氏のアカウント)である。(2020/12/5、現在)
https://www.pixiv.net/users/10
/artworks
イラストのページのアクセスするためのpath
ユーザIDと同じように、イラストに対して一意なIDが振られている。
このpath下にイラストに対応したIDを入力することによって、そのイラストの専用ページを表示させる事ができる。
https://www.pixiv.net/artworks/[art_ID]
例えば、以下はpixiv事務局のある告知のURLである。
https://www.pixiv.net/artworks/86066779
/novel
小説関連のページにアクセスするためのpath
基本的には上記/artworkと変わらない。
細かい仕様は異なり、path直下にIDを入力するのではなく、専用のPHPへIDを渡すことにより表示している。
https://www.pixiv.net/novel/show.php?id=[novel_ID]
例えば、事務局のある公式企画小説なら、以下のようなURLになる。
https://www.pixiv.net/novel/show.php?id=13555007
また複数小説をリストとして管理できる、シリーズ機能というものがありそれらは次のようなURLになる。
https://www.pixiv.net/novel/series/[series_ID]
例
https://www.pixiv.net/novel/series/1375375
画像のURL
さて大本命の画像のURLは次のようになっている。
https://i.pximg.net/img-original/img/yyyy/mm/dd/hh/mm/ss/{art_ID}_p{page_num}.jpg
日本語で書くなら、
https://i.pximg.net/img-original/img/何年/何月/何日/何時/何分/何秒/イラストID_p何枚目.jpg
といった形になる。
例えば、上記の告知の事務部の告知の画像のURLは、次のようになる。
https://i.pximg.net/img-master/img/2020/12/03/18/00/00/86066779_p0_master1200.jpg
このURLでは、何枚目かの後にmaster1200
とあるように、サイズや表示方法によってURLの細かな点が変わる。
進捗
基本的にどのURLに対しても通信はうまくいっているのだが、
画像URLに対してリクエストを送ると、基本403エラーが返ってくる。
しかし、時たまスクリプトからでもダウンロードができる事があり、目下原因を調査中である。
うまく行き次第、追記したい。