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
40
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クローラーを作った話
2022/5月に行われたすごくなりたいがくせいLT Vo.16での発表資料です
イベントページはこちら
https://teens.connpass.com/event/246542/
matumoto
May 07, 2022
More Decks by matumoto
See All by matumoto
Go標準パッケージのI/O処理をながめる
matumoto
0
440
testingを眺める
matumoto
1
220
sync/v2 プロポーザルの 背景と sync.Pool について
matumoto
0
790
Goトランザクション処理
matumoto
1
87
いまいちどスライスの 挙動を見直してみる
matumoto
0
420
Go1.22のリリース予定の機能を見る
matumoto
0
90
GoのUnderlying typeについて
matumoto
0
240
Typed-nilについて
matumoto
0
380
GoのType Setsという概念
matumoto
0
62
Other Decks in Technology
See All in Technology
Pavlokで始める電撃駆動開発
sgrsn
0
190
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.3k
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
ホームラボ紹介
y_sera15
0
150
MIRU 2026 チュートリアル
keisuke198619
0
890
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
210
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.5k
ガバメントクラウドでのランサムウェア対策
techniczna
2
1.1k
強化学習「理論」入門
enakai00
3
3.6k
ラジオの科学
frievea
0
300
Flutterをカメラで動かしたかった話
sony
1
130
モバイルアプリ開発概論2026
recruitengineers
PRO
5
570
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
What's in a price? How to price your products and services
michaelherold
247
13k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.3k
WENDY [Excerpt]
tessaabrams
11
39k
Optimizing for Happiness
mojombo
378
71k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
380
The Language of Interfaces
destraynor
162
27k
Skip the Path - Find Your Career Trail
mkilby
1
180
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 とかを設定する
ご清聴ありがとうございました ほんとは別言語で再実装する予定だった