Pixiv Encyclopedia Viewer History Extractor

Python OS

CodeQL Advanced Python Lint Pytest

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

"web_ui"

Uma ferramenta de extração para Pixiv Encyclopedia Viewer Count History

README em japonês

A versão em japonês está aqui: README.ja.md.


Visão geral

Extraia dados diários do histórico de visualizações de um artigo da Pixiv Encyclopedia (pixiv百科事典).

O histórico de visualizações da Pixiv Encyclopedia é um bom dataset de séries temporais do mundo real.

Ele costuma mostrar:

  • Sazonalidade semanal (weekday vs weekend traffic)
  • Spikes ocasionais causados por events ou social media buzz

Você pode usar o CSV extraído como sample data para:

  • Time-series visualization e smoothing
  • Seasonal decomposition
  • Forecasting models (ARIMA, Prophet, etc.)

⚠️ Tool não oficial
Este project não é afiliado à Pixiv nem endorsed por ela.
Siga Pixiv’s Terms of Use e robots.txt ao usar este script.

Recursos

  • Fetch diretamente da Pixiv Encyclopedia por article title (e.g., "ブルーアーカイブ")
  • Ou leitura a partir de um local HTML file
  • Output de JSON Lines para stdout
    (um {"date": "...","count": ...} por linha)
  • CSV export opcional via --csv output.csv

Requisitos

  • Python 3.9+
  • Dependencies:
    • requests
    • beautifulsoup4

Uso

0. Criar virtual environment

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

1. Fetch por article title

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

Isso irá:

  • Baixar https://dic.pixiv.net/a/ブルーアーカイブ
  • Fazer parse do embedded JSON
  • Fazer print de um JSON object por linha em stdout:
{"date": "2025-07-01", "count": 9454605}
{"date": "2025-07-02", "count": 9331510}
{"date": "2025-07-03", "count": 8884117}
...

Você pode redirecionar isso para um file:

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

2. Export as CSV

Use a option --csv para escrever um CSV file enquanto ainda imprime JSON em stdout:

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

Exemplo de CSV content:

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

3. Usar um local HTML file

Se você já salvou o article HTML:

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

O script detectará que ブルーアーカイブ.html é um file e fará parse dele em vez de fazer fetch da web.


4. Test

pip install -r requirements.test.txt
pytest

5. Deactivate environment

deactivate

Notes / Limitations

  • Nenhum rate limiting foi implementado; por favor:
    • Use com responsabilidade
    • Evite enviar muitas requests em um curto período
  • Este é um utility script simples, destinado principalmente a personal analysis ou research.

License

  • Apache License 2.0