Webスクレイピングをしよう

C4f192b6ac3938a12a37afdd60c71b54?s=47 SIGMA1425
January 18, 2020

 Webスクレイピングをしよう

C4f192b6ac3938a12a37afdd60c71b54?s=128

SIGMA1425

January 18, 2020
Tweet

Transcript

  1. Webスクレイピングをしよう 授業変更情報BOTの作成

  2. 自己紹介 ¡ SIGMA(@SIGMA_tkn) ¡ 苫小牧高専 情報系3年 ¡ ロボットテクノロジー部(いわゆるロボコン部) ¡ Pythonで画像解析

    ¡ 1年生にC言語の講習 ¡ 初めてのLT(がんばります)
  3. 初めてなので…

  4. ¡Webスクレイピングとは?

  5. Webスクレイピングを一言で ¡ サイトから情報を抜き出す処理

  6. スクレイピングの実用例 ¡ 天気予報のサイトからその日の天気を取り出す ¡ JRのサイトから運行情報を取り出す ¡ ニュースサイトからニュースを取り出す ¡ etc…

  7. 注意点 ¡ サイトによってはスクレイピングを禁止しているの もある ¡ 代表的なものとしてはTwitter

  8. None
  9. スクレイピングを利用して… ¡ 苫小牧高専のHPから授業変更を抜き出してみた

  10. きっかけ ¡ ある日、たまたま授業変更を見忘れた

  11. きっかけ 僕「まぁどうせ授業変更なんてないでしょ〜(フラグ)」

  12. フラグ回収

  13. None
  14. 使うライブラリ(Pythonを用いる) ¡ Requests →Webサイトの情報を取得する ¡ BeautifulSoup →Webサイトを解析する

  15. None
  16. 基本的には… ¡ requests.getにURLを渡し、BeautifulSoupでパース処理 ¡ あとはテキスト属性のみ取り出して必要な情報のみ抜き 出したり、整形するなど

  17. None
  18. 苫小牧高専HPの授業変更情報(自分のクラス)の データを取得する ↓ パースする ↓ <td>タグのみ抜き出す ↓ 「科目名」というキーワードがあれば授業変更を探索、 テキスト属性のみ抜き出す ↓

    出力
  19. 実行結果

  20. ラズパイのcrontabを用いて毎日、定時に実行 授業変更は毎日見たいので…

  21. さらにクラスの人たちにも共有するために… 実行結果をクラスのSlackに出力

  22. None
  23. まとめ ¡ スクレイピングは簡単にできる ¡ 毎日、サイトを訪れる手間が省ける ¡ 他の人たちも見るような情報はSlackなどに流すと喜ばれ る ¡ スクレイピングは素晴らしい!

  24. ありがとうございました!