Photo by andy.brandon50
秋山です。
少し前にオライリーから「退屈なことはPythonにやらせよう――ノンプログラマーにもできる自動化処理プログラミング」という書籍が出て、話題になりましたね。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング
- 作者: Al Sweigart,相川愛三
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/06/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (5件) を見る
私も読みましたが、サブタイトルの通りノンプログラマーも対象とされている書籍のため、半分くらいは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
◆GitHubのAPIを叩いてissueとかを見る
GitHubのissueのタイトルを一覧で表示します。
APIのキーなどは適当に取得して試してみてください。(※もしpaiza.IOなどのオンライン実行環境で試す場合は、コードをオープンにした状態でAPIキーを載せたりしないように気をつけて試してください)。
APIの詳細についてはこちら
Issues | GitHub Developer Guide
GitHubを仕事で使ってる人にとってはissue以外にも自動化したい事項が何かとあったりするかと思います。そんなときにGitHubのAPI類を使うと有用なので試してみてください。
途中でブログパーツとして使ったオンライン実行環境サービス「paiza.IO (パイザ・アイオー)」はこちら。
■まとめ
「自分はもっとすごいことをPythonにやらせて超便利になったぜ!」という人はぜひ教えてください。
「あんまりPythonに詳しくないけど試してみたい!」という人は、まずはGitHubのところで例で出したような、ちゃんとAPIが用意されていてフォーマットが統一されたものを通知してもらう…みたいなところから始めるのがとっつきやすいかと思います。
取得した情報をさらに内部で加工したいとなってくると、やはり正規表現でざっくり処理するとか、使いたい各種ファイルフォーマット(画像とか音声とかEXCELファイルとか…)について調べる必要が出てきますね。
「自動化するどころかプログラミング自体が初心者なので、Pythonを基礎から学びたい!」という方は、プログラミングが動画で学べる「paizaラーニング」の「Python入門編」から始めてみると、無理なく基礎を習得できると思います。
現在paizaラーニングで無料公開しているPython入門編・Java入門編・C#入門編は、10/10(火)から有料講座に変更となります。ぜひ無料の間にごらんください。
詳しくはこちら
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいという方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
詳しくはこちら
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら