Pixiv Encyclopedia Viewer History Extractor

Python OS

CodeQL Advanced Python Lint Pytest

🇺🇸 English | 🇮🇳 हिंदी | 🇯🇵 日本語 | 🇨🇳 简体中文 | 🇪🇸 Español | 🇧🇷 Português (Brasil) | 🇰🇷 한국어 | 🇩🇪 Deutsch | 🇫🇷 Français

"web_ui"

Pixiv百科事典の閲覧数履歴を抽出するツール

日本語版 README

日本語版はこちら README.ja.md.


概要

Pixiv Encyclopedia (pixiv百科事典) の記事から、日ごとの閲覧履歴データを抽出します。

Pixiv百科事典の閲覧履歴は、実世界の時系列データセットとして扱いやすい素材です。

多くの場合、次のような特徴が見られます:

  • 週次の季節性(平日と週末のトラフィック差)
  • イベントやSNSでの話題化による一時的なスパイク

抽出したCSVは、次のような用途のサンプルデータとして利用できます:

  • 時系列の可視化と smoothing
  • 季節分解
  • 予測モデル(ARIMA, Prophet, etc.)

⚠️ 非公式ツール
このプロジェクトはPixivと提携しておらず、Pixivによる承認も受けていません。
このスクリプトを使用する際は、Pixiv’s Terms of Use と robots.txt に従ってください。

機能

  • Pixiv百科事典から article title(e.g., "ブルーアーカイブ")を指定して直接 fetch
  • または local HTML file から読み込み
  • stdout に JSON Lines を出力
    (1行につき1つの {"date": "...","count": ...}
  • --csv output.csv による任意の CSV export

要件

  • Python 3.9+
  • Dependencies:
    • requests
    • beautifulsoup4

使い方

0. virtual environment を作成する

python3 -m venv env
source env/bin/activate
pip install -r requirements.txt

1. article title で fetch する

python src/extract_viewer_history.py "ブルーアーカイブ"

これは次の処理を行います:

  • https://dic.pixiv.net/a/ブルーアーカイブ をダウンロード
  • embedded JSON を parse
  • stdout に1行ずつJSON objectを print:
{"date": "2025-07-01", "count": 9454605}
{"date": "2025-07-02", "count": 9331510}
{"date": "2025-07-03", "count": 8884117}
...

file に redirect することもできます:

python src/extract_viewer_history.py "ブルーアーカイブ" > ブルーアーカイブ.jsonl

2. CSVとして export する

stdout にJSONを出力しつつCSV fileも書き出すには、--csv option を使用します:

python src/extract_viewer_history.py "ブルーアーカイブ" --csv ブルーアーカイブ.csv

CSV content の例:

date,count
2025-07-01,9454605
2025-07-02,9331510
2025-07-03,8884117
...

3. local HTML file を使う

article HTML をすでに保存している場合:

python src/extract_viewer_history.py ブルーアーカイブ.html
python src/extract_viewer_history.py ブルーアーカイブ.html --csv ブルーアーカイブ.csv

Script は ブルーアーカイブ.html が file であることを検出し、webからfetchせずにそれをparseします。


4. Test

pip install -r requirements.test.txt
pytest

5. environment を deactivate する

deactivate

Notes / Limitations

  • rate limiting は実装されていません。以下に注意してください:
    • 責任を持って使用する
    • 短時間に大量の requests を送信しない
  • これは主に personal analysis または research を目的とした、シンプルな utility script です。

License

  • Apache License 2.0