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
Webスクレイピングをしよう
Search
SIGMA1425
January 18, 2020
Programming
0
440
Webスクレイピングをしよう
SIGMA1425
January 18, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Reactive Thinking with Signals and the Resource API
manfredsteyer
PRO
0
120
モテるデスク環境
mozumasu
3
1.4k
Dive into Triton Internals
appleparan
0
440
お前も Gemini CLI extensions を作らないか?
satohjohn
0
110
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
18
9.5k
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
380
CSC305 Lecture 14
javiergs
PRO
0
220
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.7k
MCPサーバー「モディフィウス」で変更容易性の向上をスケールする / modifius
minodriven
4
840
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
260
CSC509 Lecture 08
javiergs
PRO
0
280
Researchlyの開発で参考にしたデザイン
adsholoko
0
110
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
A better future with KSS
kneath
239
18k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
910
KATA
mclloyd
PRO
32
15k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Balancing Empowerment & Direction
lara
5
710
We Have a Design System, Now What?
morganepeng
54
7.9k
Context Engineering - Making Every Token Count
addyosmani
8
340
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Raft: Consensus for Rubyists
vanstee
140
7.2k
Transcript
Webスクレイピングをしよう 授業変更情報BOTの作成
自己紹介 ¡ SIGMA(@SIGMA_tkn) ¡ 苫小牧高専 情報系3年 ¡ ロボットテクノロジー部(いわゆるロボコン部) ¡ Pythonで画像解析
¡ 1年生にC言語の講習 ¡ 初めてのLT(がんばります)
初めてなので…
¡Webスクレイピングとは?
Webスクレイピングを一言で ¡ サイトから情報を抜き出す処理
スクレイピングの実用例 ¡ 天気予報のサイトからその日の天気を取り出す ¡ JRのサイトから運行情報を取り出す ¡ ニュースサイトからニュースを取り出す ¡ etc…
注意点 ¡ サイトによってはスクレイピングを禁止しているの もある ¡ 代表的なものとしてはTwitter
None
スクレイピングを利用して… ¡ 苫小牧高専のHPから授業変更を抜き出してみた
きっかけ ¡ ある日、たまたま授業変更を見忘れた
きっかけ 僕「まぁどうせ授業変更なんてないでしょ〜(フラグ)」
フラグ回収
None
使うライブラリ(Pythonを用いる) ¡ Requests →Webサイトの情報を取得する ¡ BeautifulSoup →Webサイトを解析する
None
基本的には… ¡ requests.getにURLを渡し、BeautifulSoupでパース処理 ¡ あとはテキスト属性のみ取り出して必要な情報のみ抜き 出したり、整形するなど
None
苫小牧高専HPの授業変更情報(自分のクラス)の データを取得する ↓ パースする ↓ <td>タグのみ抜き出す ↓ 「科目名」というキーワードがあれば授業変更を探索、 テキスト属性のみ抜き出す ↓
出力
実行結果
ラズパイのcrontabを用いて毎日、定時に実行 授業変更は毎日見たいので…
さらにクラスの人たちにも共有するために… 実行結果をクラスのSlackに出力
None
まとめ ¡ スクレイピングは簡単にできる ¡ 毎日、サイトを訪れる手間が省ける ¡ 他の人たちも見るような情報はSlackなどに流すと喜ばれ る ¡ スクレイピングは素晴らしい!
ありがとうございました!