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
8
クローラーを作った話
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
Go1.22のリリース予定の機能を見る
matumoto
0
37
GoのUnderlying typeについて
matumoto
0
81
Typed-nilについて
matumoto
0
52
GoのType Setsという概念
matumoto
0
5
GoのRateLimit処理の実装
matumoto
0
89
Webプッシュ通知触ってみた
matumoto
0
23
拡張ユークリッドの互除法の紹介
matumoto
0
48
Goでの楕円曲線暗号の実装
matumoto
0
26
インターン参加記
matumoto
0
20
Other Decks in Technology
See All in Technology
認知症フレンドリーテックとスタックチャン
naokiuc
0
400
iThome2024 Wailing Wall of Enterprise Security
notsurprised
0
250
M5と自作基板をくっつけてみた〜M5 Japan Tour 2024 Spring 福冈 (Fukuoka|福岡)〜
keropiyo
1
260
Prisma ORMを2年運用して培ったノウハウを共有する
tockn
18
4.8k
社内での継続的な機械学習勉強会の開催のコツ
yudai00
2
360
Taking Flight with Tailwind CSS
opdavies
0
4.3k
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
16
6.7k
PhpStorm超絶技巧40分集中講義 #phpconkagawa
yusuke
4
690
本当のガバクラ基礎
toru_kubota
0
300
Rustで「プリズモイダル法」を利用して「土量計算」をガチでやる
nokonoko1203
1
380
Domain-driven Design: A Complete Example
ewolff
2
220
ハードウェアを動かすTypeScriptの世界
9wick
3
1.1k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Designing with Data
zakiwarfel
96
4.8k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
7k
For a Future-Friendly Web
brad_frost
172
9k
The Cult of Friendly URLs
andyhume
74
5.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
358
22k
Building Effective Engineering Teams - LeadDev
addyosmani
33
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Statistics for Hackers
jakevdp
790
220k
The Invisible Side of Design
smashingmag
294
49k
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 とかを設定する
ご清聴ありがとうございました ほんとは別言語で再実装する予定だった