Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クローラーを作った話
Search
matumoto
May 07, 2022
Technology
0
23
クローラーを作った話
2022/5月に行われたすごくなりたいがくせいLT Vo.16での発表資料です
イベントページはこちら
https://teens.connpass.com/event/246542/
matumoto
May 07, 2022
Tweet
Share
More Decks by matumoto
See All by matumoto
testingを眺める
matumoto
1
150
sync/v2 プロポーザルの 背景と sync.Pool について
matumoto
0
380
Goトランザクション処理
matumoto
1
50
いまいちどスライスの 挙動を見直してみる
matumoto
0
350
Go1.22のリリース予定の機能を見る
matumoto
0
67
GoのUnderlying typeについて
matumoto
0
200
Typed-nilについて
matumoto
0
320
GoのType Setsという概念
matumoto
0
28
GoのRateLimit処理の実装
matumoto
0
370
Other Decks in Technology
See All in Technology
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
140
What is BigQuery?
aizack_harks
0
120
DataOpsNight#8_Terragruntを用いたスケーラブルなSnowflakeインフラ管理
roki18d
1
320
LLMアプリケーション開発におけるセキュリティリスクと対策 / LLM Application Security
flatt_security
7
1.7k
ユニットテストに対する考え方の変遷 / Everyone should watch his live coding
mdstoy
0
120
BtoBプロダクト開発の深層
16bitidol
0
160
タスクって今どうなってるの?3.14の新機能 asyncio ps と pstree でasyncioのデバッグを (PyCon JP 2025)
jrfk
1
220
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
11
77k
Why React!?? Next.jsそしてReactを改めてイチから選ぶ
ypresto
10
4.2k
Goを使ってTDDを体験しよう!
chiroruxx
1
250
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
180
KMP の Swift export
kokihirokawa
0
310
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Music & Morning Musume
bryan
46
6.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
9
570
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.6k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Scaling GitHub
holman
463
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
237
140k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Transcript
競プロの 提出クローラーを作った
自己紹介 • ハンドルネーム:matumoto • 本名:松本響輝 • 学年:28期 • 趣味:漫画アプリで毎日更新の漫画を読む •
今興味のある技術: • やってきた技術: ◦ ゲーム作り ◦ フロントエンド ◦ AtCoder 水💧 • Twitter:@matumoto_1234
今回つくったもの
None
None
None
https://github.com/matumoto1234/cp-crawler
きっかけ
提出を検索したかった
• 任意のユーザーの提出コードから文字列検索を行う ◦ サービス名はac-predictorを意識してac-searcherとかにしたいなあとか思ってた ◦ 先人がいた 先人がいた
None
クローラーを作ろう! • クローラーを公開してcloneとかよしなにしてもらえばよさそう
クローラーをつくる
参考 • https://github.com/key-moon/compro
機能 • 各サイトのACのソースコードを持ってくる ◦ ACするソースコードが複数ある場合も複数持ってくる • headerとしてファイルの先頭行に提出のURLをコメントアウトしてのっ ける • GitHubActionsのcronで定期実行させる
• 本家の方では提出ファイルの先頭行に `ignore` があったらクロールし ない機能があるが、それは実装しない
構成 • https://github.com/key-moon/compro の構成
構成
構成
TODO: なおす • エラー管理がかなり雑 ◦ スクレイピング先がNot Foundとかだったりすると、そこでログを出 力するようにしちゃった • 言語と拡張子が違う
◦ C++の提出なのに拡張子がなぜか.cだったりする
使ってみたい人向け
やってくれ~~ • cloneして、いまある提出(atcoder/)の部分を消して、variables.goを少 し編集するだけ ◦ AtCoderUserName の部分とかを変更する ◦ secrets.GIT_EMAIL とかを設定する
ご清聴ありがとうございました ほんとは別言語で再実装する予定だった