pixivのURLについて

副題

pixivのスクレイビングをしたかったけどうまくいってない話

目次

目的

現在自室には裏でデータ収集を行っているラズベリーパイが転がっています。

f:id:atraskun:20201207210334j:plain:w300

もったいないと思って時計にしてみましたが、 なんか物がなしい、、

背景に画像とか写したい。

いっそのこと好きなキャラクターの画像なら尚いい、、

画像をループさせるのは飽きそうでなんかいや、

以上の理由から、、

pixiv上の(特定の)画像を自動で取得して表示してくれるようにしよう!!!!

使用する物

python3 :一番使い慣れている言語

rasupberry pi3 modelB:転がってたマイコン

先行記事

python,pixivで調べると、どうやらライブラリがあるらしいが、

Pythonを使ってpixivタグ検索とイラスト保存まで

pixivからイラストを無限に集めてみる[python]

個人的な興味から、 今回は用いずにスクレイビングでダウンロードすることにした。

pixivのURLについて

まずピクシブのトップドメイン

pixiv.net

でありその下にパスを追加することで各画面へとアクセスすることが可能である。

ホーム画面のを除き、次のパスが存在する。

  • /tags
  • /user
  • /artwork
  • /novel

それぞれ説明をしていこう。

/tag

検索画面にアクセスするためのpath

tag下に検索ワードを追加することで、 その文字で検索を行った結果が出てくる。

例えば、アルビノのイラストについて調べたい場合は以下のようになる。

pixiv.net/tags/アルビノ

複数の条件で検索する場合、"%20(スペース)"にて接続してやれば良い。

pixiv.net/tags/銀髪%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

www.pixiv.net

ちなみに、最小のユーザIDは10でユーザ名は馬骨(創始者の上谷隆宏氏のアカウント)である。(2020/12/5、現在)

https://www.pixiv.net/users/10

www.pixiv.net

/artworks

イラストのページのアクセスするためのpath

ユーザIDと同じように、イラストに対して一意なIDが振られている。

このpath下にイラストに対応したIDを入力することによって、そのイラストの専用ページを表示させる事ができる。

https://www.pixiv.net/artworks/[art_ID]

例えば、以下はpixiv事務局のある告知のURLである。

https://www.pixiv.net/artworks/86066779

リクエスト機能が11月に行ったアップデートを紹介いたします。www.pixiv.net

/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

www.pixiv.net

また複数小説をリストとして管理できる、シリーズ機能というものがありそれらは次のようなURLになる。

https://www.pixiv.net/novel/series/[series_ID]

https://www.pixiv.net/novel/series/1375375

www.pixiv.net

画像の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エラーが返ってくる。

しかし、時たまスクリプトからでもダウンロードができる事があり、目下原因を調査中である。

うまく行き次第、追記したい。

adventar.org