「Pythonで自動化ツールを作成したいけど、作り方が分からない、、」というお悩みを持たれている方がいらっしゃいます。
近年ではPythonによる自動化や効率化が流行っており、本屋さんでも「Pythonで作業を自動化しよう!」といった内容の本が多く見受けられます。
しかし、実際にPython学習に取りかかって自動化ツールを作成しようと試みるものの、どう作ればいいのか、どのライブラリを使えばいいのかなど分からない事だらけだと思います。
なので、今回はそういったお悩みを解決できる内容となっております。
目次
1. 自動化とは

そもそも自動化とは何でしょうか?
自動化とは「人間による作業を、機械の自動によるように変えること。」を指します。
こういった自動化はデータ入力など考えなくてもできる機会的な作業をプログラムする事で、アイデアの考案やプロジェクトメンバーとのコミュニケーションなど、本来人間がやるべき作業に注力する事が大きなメリットになります。
また、機械学習や深層学習によって自分向いている職業は何なのか、自分の特徴なども分かるようになっており、自分で考えなくてもプログラムが教えてくれる時代になってますので、無駄に考える必要もなくなりつつあります。
2. なぜ、Pythonなのか?

今では自動化といったらPythonと代表的になっていますが、なぜPythonが選ばれているのでしょうか?
自動化は別にPython以外のプログラミング言語でも可能です。
勘違いする方がいらっしゃるのですが、プログラミング言語というものは機械に指示を出すためのものであって、得意不得意があれど自動化はどのプログラミング言語でも可能です。
人間でも勉強が得意な人もいれば、スポーツが得意な人もいたりと千差万別です。
では、なぜPythonが自動化に使われるのか理由を列挙していきます。
2-1. コードがシンプル
一つはPythonはコードがシンプルで分かりやすい事が挙げられます。
Pythonはインタプリタ型言語とも呼ばれ、「人間が理解しやすいコード」のことを指します。
プログラミングは機械に指示を出しますが、機械は人間の言葉が理解できず機械語しか分かりません。
機械語などの説明は本記事内容と脱線してしまうので、割愛させていただきますが、インタプリタ型であるPythonは人間でも分かりやすいコード設計になっている事だけ理解して頂ければ幸いです。
コードがシンプルだと何がいいのかというと誰かにPythonで書かれたコードを共有した時にも説明がしやすく、チーム開発に向いています。
また、二人が同じ内容のプログラムを作成する時にも基本的に同じコードになるので、非常に読みやすく書きやすい言語となっています。
2-2. ライブラリが豊富
Pythonは海外企業が多く採用されているので、その企業ごとに開発されたライブラリが多数存在します。
例えば、Tensorflow(テンソルフロー、テンサーフロー)はGoogleが開発された機械学習ライブラリであり、オープンソースとして誰でも使えるようにGoogleから提供されています。
また、ディープラーニング向けに開発されたChainerも日本の企業であるPreferred Networksが開発されています。
このように、データを処理するためのライブラリが多数あるので、1からコードの記述をしなくても良い点が挙げられます。
3. 自動化できるもの

自動化といっても目的に応じて様々な手法があります。
今回はPythonにて用いらえる代表的な自動化方法をご紹介していきます。
3-1. ウェブサイトからデータを抽出する(スクレイピング)
まず、Pythonといったらスクレイピングだと思います。
スクレイピングを使用することにより、自分が欲しい商品の価格や株価などの情報を取得する事ができて逐一Webサイトをクリックして確認する手間が省くことができます。
Pythonにてスクレイピングをする際の代表的なライブラリがBeautiful Soup4やRequests、Scrapyになります。
これらのライブラリを駆使して、スクレイピングを行なっていきます。
スクレイピングについてやBeautiful Soupの使い方に興味がある方はこちらの記事をご覧ください。
3-2. ブラウザを操作する
Pythonでは人の手を借りずにブラウザを操作することも可能です。
自分の欲しいデータがWebサイト内にある場合、クリックしないと取得できないこともあるので、BeautifulSoupなどのライブラリだけでは完結しません。
ブラウザ操作にはSeleniumというライブラリによって、自動化する事ができます。
これにより、スクロールやクリック、ブラウザバックと基本的な操作であれば誰でも操作する事ができ、自分が欲しいデータがあるページまでたどり着く事が可能になるので、より高度なスクレイピングツールを作成する事ができるのです。
Seleniumはスクレイピング技術と相性がいいので、簡易的なスクレイピングツールを作成できたら、ぜひブラウザ操作を加えたスクレイピングにチャレンジしてみてください。
Seleniumについてや使い方に興味がある方はこちらの記事をご覧ください。
PythonではAPIを使って、自動化することも可能です。
APIとは、「Application Programming Interface」の頭文字をとった略語のことであり、最後のインターフェイスとは、「何か」と「何か」をつなぐものという意味を持ちます。
例えば、USBも「パソコン」と「周辺機器」をつなぐものですので、インターフェイスの一つです。
企業が開発したアプリケーションによって、商業目的などによってAPIが提供されている事があります。
Twitterであればいいねやフォローといった機能がありますが、Twitter APIを利用するとこれらの機能がTwitter上だけでなくPythonなどのプログラミング言語からも使えるようになります。
つまり、Twitterを開かなくてもプログラム側からTwitterの機能を使えるということです。
APIを使った自動化について興味がある方はこちらの記事をご覧ください。
※予め、Twitter APIを取得されている方限定になります。
3-4. Excelの操作
会社員の方は馴染みのあるExcelですが、こちらもデータの入力など自動化する事ができます。
Excelの中にも合計をだすsumなど簡易的な関数が搭載されていますが、残念ながら紙媒体に書かれたデータをExcelに入力するといった事は人間の手を使う必要があります。
上述したように、考えずともできる反復的な作業は自分の人生という限られた時間の中でやるべきタスクではありません。
PythonにてExcelを操作するには、OpenPyXLというライブラリを使用します。
ブラウザの検索バーにて「Python Excel」と入力すれば、自動化する様々なWebサイトが出てくるので是非試してみてはいかがでしょうか?
4. まとめ
いかがでしたでしょうか?
今回は「Pythonで自動化ツールを作成したいけど、作り方が分からない、、」といった方に対して目的に応じた自動化のやり方をご紹介していきました。
本記事を通して、Pythonの自動化ツールを作るきっかけとなれば幸いです。
最後まで一読していただき、ありがとうございました!