Wave Technology(WTI)-ウェーブ・テクノロジ

WTIは技術者不足を解決する「開発設計促進業」です

Raspberry Piでスクレイピング ~プログラム編~

みなさん、こんにちは。
高周波機器設計課の中野と申します。よろしくお願いいたします。

今回は、前回のブログで準備したRaspberry Piと、以前のブログで作成した電子ペーパー名札を使って、Webの勤怠情報をスクレイピングで取得して、名札に表示したいと思います。これで、ホワイトボード(行先予定表)へ行かずとも名札を裏返せるようになります。

イメージはこんな感じです↓

 

 

今回は、プログラムを以下の感じで、作って動作させてみます。

  1. 取得したいデータの調査
  2. Pythonでスクレイピングのプログラミング
  3. Cronで定期実行

それでは実際に作っていきましょう!

 

■取得したいデータの調査

ブラウザの検証機能を使って、スクレイピングで必要な、取得したい要素の情報を集めていきます。今回は勤怠ボタンの状態で、出社しているか否かの判断をしたいので、勤怠ボタンの情報を調べます。

Chromeの検証機能↓のような感じです。

 

 

勤怠ボタンの名前を調べています。名前がわかったら、スクレイピングで状態が取得できますね。

 

■Pythonでスクレイピングのプログラミング

Webページで取得したい情報(勤怠ボタンの名前)がわかったら、Pythonでプログラムを書いていきます。

全体的な動作の流れは、↓の感じです。

  1. ログインページを開く。
  2. IDとパスワードを入力して、勤怠情報がわかるページまで移動する。
  3. 勤怠情報を取得したら、ESP32のページにアクセスし、名札を裏返す。

プログラムの作り方は、↓の感じです。

  1. Chromiumのインスタンスを生成するとブラウザが立ち上がります。
  2. get(url)を使って、指定したurlへ移動します。
  3. find_element_by_id(idName)を使って押したいボタンやテキストボックスの要素を取得します。
  4. で取得した要素に対してsend_keys(string)または、click()を使ってキーボード入力やクリックをします。
  5. あとは 3. 4.を組み合わせて、目的のWebページまで進んでいきます。

プログラムができたら、実行してみます。

ログインが終わると、勤怠の表示画面まで進んでいきます。勤怠の表示画面で、出社か退社か確認出来たら、↓の電子ペーパー名札のWebページにアクセスして、名札の色を変更します。

 

名札↓が出社中(白)になりました!

 

ここまで、ソフトが問題なく動作していることを、確認できました。

 

■Cronで定期実行

プログラムが動作していることが確認できたら、プログラムの実行時間を考慮して、3分間隔ほどの定期実行タスクを追加します。

Cronは指定した時間に、プログラムを実行できるUNIX系の常駐プログラムです。毎週決まった時間にプログラムの実行等ができます。今回は3分おきに実行という命令を、テキストエディタでCronの設定ファイルに追加しておきます。

これで、定期的に勤怠情報を確認して、電子ペーパー名札の表示が変わるようになりました。

 

WTIでは、このような感じで楽しく開発を行っています。弊社ではIoT関連のラピットプロトタイピングを得意としており、組み込み機器の回路設計、基板設計、ソフトウェア設計、筐体設計は弊社で一貫して行えます。また、システム全体の設計でお悩みの方も、ぜひ弊社にお任せください。

また、今回のブログの内容は、インターンシップの資料にもなっていますので、興味のある学生さんは、ぜひ参加してみてください。

 

それではまた、次回お会いいたしましょう!

 

【関連リンク】

 

【関連ブログ】

 

【関連動画】

 

WTIメールマガジンの配信(無料)

WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら

WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら

 

WTI動画リンクはこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。

 

 © 2005 Wave Technology Inc.