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
20
クローラーを作った話
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
sync/v2 プロポーザルの 背景と sync.Pool について
matumoto
0
260
Goトランザクション処理
matumoto
0
38
いまいちどスライスの 挙動を見直してみる
matumoto
0
340
Go1.22のリリース予定の機能を見る
matumoto
0
63
GoのUnderlying typeについて
matumoto
0
190
Typed-nilについて
matumoto
0
300
GoのType Setsという概念
matumoto
0
23
GoのRateLimit処理の実装
matumoto
0
340
Webプッシュ通知触ってみた
matumoto
0
31
Other Decks in Technology
See All in Technology
風が吹けばWHOISが使えなくなる~なぜWHOIS・RDAPはサーバー証明書のメール認証に使えなくなったのか~
orangemorishita
15
5.7k
SRE新規立ち上げ! Hubbleインフラのこれまでと展望
katsuya0515
0
190
✨敗北解法コレクション✨〜Expertだった頃に足りなかった知識と技術〜
nanachi
1
680
Telemetry APIから学ぶGoogle Cloud ObservabilityとOpenTelemetryの現在 / getting-started-telemetry-api-with-google-cloud
k6s4i53rx
0
140
ロールが細分化された組織でSREと協働するインフラエンジニアは何をするか? / SRE Lounge #18
kossykinto
0
210
dipにおけるSRE変革の軌跡
dip_tech
PRO
1
260
LTに影響を受けてテンプレリポジトリを作った話
hol1kgmg
0
350
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
1.3k
金融サービスにおける高速な価値提供とAIの役割 #BetAIDay
layerx
PRO
1
810
Eval-Centric AI: Agent 開発におけるベストプラクティスの探求
asei
0
110
Amazon Bedrock AgentCoreのフロントエンドを探す旅 (Next.js編)
kmiya84377
1
140
家族の思い出を形にする 〜 1秒動画の生成を支えるインフラアーキテクチャ
ojima_h
3
980
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.3k
KATA
mclloyd
32
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Faster Mobile Websites
deanohume
308
31k
Visualization
eitanlees
146
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
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 とかを設定する
ご清聴ありがとうございました ほんとは別言語で再実装する予定だった