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
13
クローラーを作った話
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
Goトランザクション処理
matumoto
0
16
いまいちどスライスの 挙動を見直してみる
matumoto
0
230
Go1.22のリリース予定の機能を見る
matumoto
0
51
GoのUnderlying typeについて
matumoto
0
120
Typed-nilについて
matumoto
0
140
GoのType Setsという概念
matumoto
0
11
GoのRateLimit処理の実装
matumoto
0
150
Webプッシュ通知触ってみた
matumoto
0
27
拡張ユークリッドの互除法の紹介
matumoto
0
100
Other Decks in Technology
See All in Technology
kube-vipとkube-proxy置き換えCiliumを積んだ究極のK3sクラスタを建てる
logica0419
4
210
リスクから学ぶKubernetesコンテナセキュリティ/k8s-risk-and-security
mochizuki875
1
310
PREEMPT_RT over the years
ennael
PRO
0
350
Slackbot × RAG で実現する社内情報検索の最適化
howdy39
2
320
Perlで始めるeBPF: 自作Loaderの作り方 / Getting started with eBPF in Perl_How to create your own Loader
takehaya
1
810
OPENLOGI Company Profile
hr01
0
54k
Semantic Kernel の Agent 機能試してみた!
okazuki
1
130
【shownet.conf_】クロージングセッション
shownet
PRO
0
290
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
2
220
スクラム導入の舞台裏:QAエンジニアがスクラムマスターになるまで
bubo1201
0
170
DenoでもViteしたい!インポートパスのエイリアスを指定してラクラクアプリ開発
bengo4com
1
1.9k
成果のためのコミュニケーション - 語彙を育てよう -/communication-for-good-outcome-developing-vocabulary
hassaku63
4
160
Featured
See All Featured
Optimizing for Happiness
mojombo
375
69k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
4
110
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
46
4.9k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Become a Pro
speakerdeck
PRO
24
4.9k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Debugging Ruby Performance
tmm1
73
12k
Statistics for Hackers
jakevdp
796
220k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
Design by the Numbers
sachag
278
19k
Agile that works and the tools we love
rasmusluckow
327
21k
Gamification - CAS2011
davidbonilla
80
5k
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 とかを設定する
ご清聴ありがとうございました ほんとは別言語で再実装する予定だった