paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

エンジニアがPythonを使って自動化している4つのこと―退屈なことはPythonにやらせよう

f:id:paiza:20170929111729j:plain
Photo by andy.brandon50
秋山です。

少し前にオライリーから「退屈なことはPythonにやらせよう――ノンプログラマーにもできる自動化処理プログラミング」という書籍が出て、話題になりましたね。

私も読みましたが、サブタイトルの通りノンプログラマーも対象とされている書籍のため、半分くらいはPython自体についての解説になっています。第二部からは、本題というべき自動化に関する話になっているので、結構興味深く読みました。

というわけで、「退屈なことはPythonにやらせよう」に感化された…わけでもないですが、自分が実際に普段からPythonにやらせていることを、いくつか紹介していきたいと思います。

■実際にPythonエンジニアがPythonにやらせている退屈な(?)こと

基本的にはWeb上のAPIを叩いて、Web上のデータを取得する…ということをよくやっています。

Gmailでメールを自動送信する

SMTPなどを使ってもよいのですが…以前海外のサーバーに置いてSMTPでいろいろと自動送信をしていたら、「お前のアカウント乗っ取られてるかもしれないぞ」的なことを言われて自動送信ができなくなる…という現象が起きたことがあるので、直接APIを叩くようにしました。

こちらにクイックスタートがあります。
Python Quickstart  |  Gmail API  |  Google Developers

API用のキーを作ったりする必要があるのが少し面倒ですが……SMTPを使うよりはこちらの方がセキュリティ的にも安心かと思います。

◆lxmlを使用して、HTMLから適当な値を取ってくるスクレイプ

とりあえずrequestで取れて、適当な値を取ってきてくれるスクレイプです。

↓例えばこのコードだと、paizaで掲載している求人から、求人タイトルに「エンジニア」という単語が含まれる一覧を作る…ということができます。(※ブログパーツで使ってるpaiza.IOはlxmlに対応していないため実行結果の部分にエラーが出ています。実行したい方はお手元の開発環境でインストールして試してみてください…)

値を取ってきて一覧を作る程度の処理だと、こんな感じで結構簡単にできます。

ただ、動的なページなどに対応はしていないので、動的に使いたい場合は「退屈なことは~」にも記載がありましたが、 Selenium を使うのがよいかと思います。

lxmlやSeleniumのインストールは、↓の記事で書いているいろいろなライブラリのインストール方法と同様に、 pip install でインストールできます。
paiza.hatenablog.com

◇特定のサイトで画像の情報を適当に取得して見る

上記の応用で、画像の情報を取ってきてもらうこともできます。

このコードの場合、このブログで1枚目に出てくる画像から、 0, 0 の位置の画素のRGBを出力しています。(※paiza.IOはlxmlに対応はしていないため、実行したい方はお手元の開発環境でインストールして試してみてください)


ちなみにlxmlやSelenium以外にもPythonの便利なライブラリやフレームワークについてはこの記事↓でも紹介しているので興味があったら見てみてください。
paiza.hatenablog.com

GitHubAPIを叩いてissueとかを見る

GitHubのissueのタイトルを一覧で表示します。

APIのキーなどは適当に取得して試してみてください。(※もしpaiza.IOなどのオンライン実行環境で試す場合は、コードをオープンにした状態でAPIキーを載せたりしないように気をつけて試してください)。

APIの詳細についてはこちら
Issues | GitHub Developer Guide

GitHubを仕事で使ってる人にとってはissue以外にも自動化したい事項が何かとあったりするかと思います。そんなときにGitHubAPI類を使うと有用なので試してみてください。


途中でブログパーツとして使ったオンライン実行環境サービス「paiza.IO (パイザ・アイオー)」はこちら

■まとめ

「自分はもっとすごいことをPythonにやらせて超便利になったぜ!」という人はぜひ教えてください。

「あんまりPythonに詳しくないけど試してみたい!」という人は、まずはGitHubのところで例で出したような、ちゃんとAPIが用意されていてフォーマットが統一されたものを通知してもらう…みたいなところから始めるのがとっつきやすいかと思います。

取得した情報をさらに内部で加工したいとなってくると、やはり正規表現でざっくり処理するとか、使いたい各種ファイルフォーマット(画像とか音声とかEXCELファイルとか…)について調べる必要が出てきますね。


「自動化するどころかプログラミング自体が初心者なので、Pythonを基礎から学びたい!」という方は、プログラミングが動画で学べる「paizaラーニングPython入門編から始めてみると、無理なく基礎を習得できると思います。


現在paizaラーニングで無料公開しているPython入門編Java入門編C#入門編は、10/10(火)から有料講座に変更となります。ぜひ無料の間にごらんください。

paiza.jp




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいという方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
paiza.jp
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza


プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編