0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AtCoder シンプルなスクレイピングツール「atcs」の紹介

Last updated at Posted at 2025-11-17

はじめに

  1. AtCoderの問題の復習をする際に「どう間違えた?」や「私は~の解答なんだけどよりよい解法はある?」をAIにレビューしてもらうために問題を抽出(スクレイピング)したい。

  2. 既存のAtcoderをスクレイピングツールはあるんだけど、PythonやNodeをインストールする前提であり、環境に依存しないお手軽でシンプルな問題抽出をしたい

これらの課題を解決するために、OSや環境に依存しない単一実行ファイルのツール「atcs」を作成しました。

GitHub:

このツールは単一の実行ファイルで動作するため、PythonやNode.jsなどの環境構築が不要です。

主な特徴

  • 環境依存なし: 単一の実行ファイルで動作(Python/Node.js不要)
  • 簡単操作: URLを指定するだけで問題を抽出
  • 画像対応: 問題文に含まれる画像も自動ダウンロード
  • JSON形式: 構造化されたデータで保存
  • クロスプラットフォーム: Windows、Linux、macOS対応

インストール方法

Releasesページから、お使いのOSとアーキテクチャに合ったバイナリをダウンロードしてください。

  • Windows (amd64): atcs-windows-amd64.exe
  • Windows (arm64): atcs-windows-arm64.exe
  • Linux (amd64): atcs-linux-amd64
  • Linux (arm64): atcs-linux-arm64
  • macOS (amd64): atcs-darwin-amd64
  • macOS (arm64): atcs-darwin-arm64

Windowsの場合

ダウンロードしたファイル名をatcs.exeに変更して、環境変数PATHに追加してください。

Linux/macOSの場合

# 最新バージョンをダウンロード(Linux amd64の場合)
curl -L https://github.com/tomyou666/atcoder-scraper/releases/latest/download/atcs-linux-amd64 -o atc

# 実行可能にする
chmod +x atc

# PATHに追加(例:/usr/local/bin/)
sudo mv atcs /usr/local/bin/

# インストール確認
atcs --help

使用方法

基本的な使用方法は非常にシンプルです:

atcs <AtCoderの問題URL> [出力ディレクトリ名/ファイル名]

使用例

1. 標準出力にJSONを表示

atcs https://atcoder.jp/contests/abc123/tasks/abc123_a

2. ディレクトリに保存(画像も自動ダウンロード)

atcs https://atcoder.jp/contests/abc123/tasks/abc123_a problem_data

このコマンドを実行すると、problem_dataディレクトリが作成され、以下のファイルが保存されます:

  • problem_data/problem.json - 問題データ(JSON形式)
  • problem_data/*.png - 問題文に含まれる画像(複数ある場合は自動的にダウンロード)

3. ファイル名を指定して保存

atcs https://atcoder.jp/contests/abc123/tasks/abc123_a output.json

出力形式

問題データは以下のようなJSON形式で保存されます:

{
  "problem": "問題文の内容",
  "constraints": "制約の内容",
  "input": "入力形式の説明",
  "images": ["画像URL1", "画像URL2"]
}

画像は自動的にダウンロードされ、JSONファイルと同じディレクトリに保存されます。

実際の使用例

例:ABC431のE問題(画像付き)を抽出

atcs https://atcoder.jp/contests/abc431/tasks/abc431_e  abc431_e

保存されたファイル構造:

abc431_e
|-- 1aeac5f2fecf4319d369b8cc3067959a.png
|-- 283ea6eabada389e76e89518fcb9fb18.png
|-- 9410773fd7615321f27f070d5f0b1844.png
|-- 9a3821cb76d936b95b6979e084d56994.png
|-- f66a190627b09b9e6c4cbacb84b6d9bd.png
`-- problem.json

補足

本プロジェクトはコンテスト終了後や練習問題をAIにレビューを行ってもらうために、問題文を抽出することを目的としたツールであり、本番中の利用は想定していません。

⇒なので、「A~Eを一括して問題文をスクレイピングする」などのコンテスト単位での機能はありません。

もちろんですが、本番での生成AI利用は AtCoderの利用規約 で原則禁止されています。

本ツールを利用して「スクレイピング ⇒ 本番コンテストの問題をAIに読み込ませる」は絶対にやめてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?