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
30
クローラーを作った話
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
180
sync/v2 プロポーザルの 背景と sync.Pool について
matumoto
0
650
Goトランザクション処理
matumoto
1
70
いまいちどスライスの 挙動を見直してみる
matumoto
0
380
Go1.22のリリース予定の機能を見る
matumoto
0
76
GoのUnderlying typeについて
matumoto
0
220
Typed-nilについて
matumoto
0
350
GoのType Setsという概念
matumoto
0
40
GoのRateLimit処理の実装
matumoto
0
450
Other Decks in Technology
See All in Technology
競争優位を生み出す戦略的内製開発の実践技法
masuda220
PRO
0
240
AWS Bedrock Guardrails / 機密情報の入力・出力をブロックする — Blocking Sensitive Information Input/Output
kazuhitonakayama
2
160
プロダクト開発の品質を守るAIコードレビュー:事例に見る導入ポイント
moongift
PRO
1
310
【Claude Code】Plugins作成から始まったファインディの開発フロー改革
starfish719
0
410
LLMOpsのこれまでとこれからを学ぶ
nsakki55
2
670
生成AIの研究活用_AILab2025研修
cyberagentdevelopers
PRO
11
6k
Generative UI を試そう!A2-UIでAIエージェントにダッシュボードを作らせてみた
kamoshika
1
290
Databricks (と気合い)で頑張るAI Agent 運用
kameitomohiro
0
150
Agent Ready になるためにデータ基盤チームが今年やること / How We're Making Our Data Platform Agent-Ready
zaimy
0
150
xDS を活用したサービスディスカバリーで実現するブランチ別 QA 環境の構築手法
knwoop
1
200
意志を実装するアーキテクチャモダナイゼーション
nwiizo
3
1.6k
AIで「ふとした疑問」を即座に検証する 〜定量で圧倒するN1理解〜
kakehashi
PRO
3
710
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.6k
Ruling the World: When Life Gets Gamed
codingconduct
0
160
Mobile First: as difficult as doing things right
swwweet
225
10k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
450
Discover your Explorer Soul
emna__ayadi
2
1.1k
Unsuck your backbone
ammeep
671
58k
Marketing to machines
jonoalderson
1
5k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
190
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
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 とかを設定する
ご清聴ありがとうございました ほんとは別言語で再実装する予定だった