はじめに
皆さん、今回は早めに投稿できたと思っています。enp(えん)です。マビノギはライフワークです。
この記事は『RPAツール』を作ろうとする人の進捗報告になります。
RPAやRPAツールの作り方が書いてあるものではございませんので、ご了承ください。(もしかしたら、ソースは少しだけ載せるかもしれません。気分次第です)
今回はseleniumと仲良くなろうPart.3です。seleium編は今回で最終回になります。
また、seleniumと仲良くなろうと言いつつ、あまりseleniumの話はしないと思います!
最後までお付き合いいただければ幸いです。
seleniumに出来ないこと
さて、#3からseleniumについて学んできましたが、実はRPAとしてスクレイピング等行う場合、通常selenium単体では使いません。
もちろんseleniumでスクレイピングを行うことは出来ます。ですが、とある致命的なことが出来ません。
それは、HTTPステータスコードを取得することです。
HTTPステータスコードとはWebページに正しく接続できたか、リダイレクトが行われたのか等を知ることのできる3桁の数字です。
これが確認できないと正しくプログラムを組んでいたとしても動作が不安定になり、エラーを吐きやすいアプリケーションになってしまいます。
このままではいけない!
という訳で、取得しようとしたページに正しく接続できるのか確認できるようになりましょう。
HTTPステータスコードが確認できる。そう、requestsならね
さぁ、seleniumで確認できないHTTPステータスコードを確認していきましょう。
使うのはPythonに標準ライブラリとして追加されたrequestsです。(開発環境次第で標準ライブラリとして導入されていない場合があります。そんな時はpipでインストールしましょう)
requestsでHTTPステータスコードを確認する方法はstatus_codeメソッドを使うやり方です。
status_codeはHTTPステータスコードを取得して出力するシンプルなメソッドです。
printを使うと3桁の数字を出力します。
status_codeでHTTPステータスコードを取得して、ifで条件分岐をすればエラーハンドリングが可能。
また、if文を書くのが嫌な人はraise_for_statusメソッドを使用すれば解決します。
raise_for_statusはHTTPステータスコードが200番台以外の時、例外を起こします。(200番台は正常にWebページを取得したことを表します)
そのためtry・exceptで拾って例外処理を行えば簡単にエラーハンドリングが行えます。
これで安定的なアプリケーションが実装できそうですね。
美しいスープの存在
さぁ、私が今抱えている問題をお教えしましょう。
どうやって、プログラムできない人に専門的なことをやらせよう?
seleniumではxpathや属性名でテキストボックスやボタンを指定してきました。
ですが、HTMLをやってない人やそもそもプログラムをやってない人には全く分からない内容です。
難しい内容という訳でもないので学べば分かる内容ではありますが、学ぶことを敬遠することはあると思います。
操作など分かりやすくなければアプリケーションを使ってもらえないという根本的で致命的な欠陥が生まれます。
そこで美しいスープのご紹介です。
美しいスープって何? 分かります。しかし、美しいスープと言うしかないんです。
だってライブラリ名がBeautifulSoupなんですもの。(正確にはBeautifulSoup4です)
あっ。決してビューティフルソープって呼ばないでくださいね。あなたの品格が疑われます。
正しくはビューティフルスープです。
では、BeautifulSoup(以下、bs4)は一体何をするライブラリなのでしょうか?
bs4が出来ることはWebページの解析と情報の取得です。
クリックなどのマウス操作は出来ませんが、テキストの取得などが得意です。
また、HTMLの階層も解析でき、出力できます。そんな機能を使って簡単に指定が行えないかと考えています。
まぁ、それはKivyを学んだあとに頑張ってみましょう。
重要なのは一筋の光が見えたということです。
最後に
内容、少なッ!!
申し訳ありません。あくまで進捗報告ですのでご了承ください。
ですが、一応インターネットから情報を取ってくる環境は整ったと思います。
面白くなってきました。
次回からはopenpyxl編です。ようやくxlsxファイルを扱います。仕事で扱う代表的なファイルですね。
大変重要な内容になると思うので、しっかり学んでいきましょう。
以上、enpがお送りいたしました。