CourseraのUsing Python to Access Web Dataの講座でWebスクレイピングを学ぶ

前回では「ひとつのプログラミング言語」「データベース言語」について学ぶ事が出来るオンラインコース、「Python for Everybody Specialization」を取り上げました。

 

www.coursera.org

 

本記事では、さらにそのプロジェクトの中の一つの講座「Using Python to Access Web Data」について取り上げたいと思います。 お伝えした通り、自分はこの講座を受講したことでプログラミングの実用性を正しく理解することが出来ました。講座では、BeautifulSoup4というライブラリを用いて、Webスクレイピングを行います。このライブラリによって、HTMLを取得、解析することで、Web上の任意のソースを取得することができます。加えて、正規表現を活用することで、取得対象をより特定させることも学びます。

 

www.coursera.org

 

幸運だったのが、丁度この時期に実生活において初めて野生のエンジニアと交友を持つことができ、彼がこの講座のサポーターとしての役目を果たしてくれた事です。とりわけ、正規表現に関しては強く利便性を説いてくれていたのが印象的でした。もともと自分の描いていたプログラミング像では、手動のルーティーンタスクをオートメーションできることが最大の魅力だと考えていたので、自身がこれまで抱えていた退屈なPC上のタスクについて彼に相談すると、「え、そんな非効率な事やってんの?」という期待通り態度をきっちりと示してくれ、「やっぱり間違ってなかったんだ」という意思をより強固に持つことが出来ました。。(彼については現在も交友が続いており、メンターの存在の大切さについては別記事で言及したいと思います)

 

さて、現在は上記の2つの手法に加えて、Seleniumというツールをブラウザのオートメーションのために扱うようになりました(Webアプリケーションのテストツールなので、本来的な使い方ではないかもしれません)。Seleniumは上記講座では触れらていませんが、BeautifulSoup4、正規表現と組み合わせる事で、PythonによるWeb上での処理はかなり自由度が高まったのではないかと思います。この自身の経験から、1つMOOCの利点を挙げるとすれば、講座で得た知識を糧として、しっかりと派生先の技術にリーチすることが出来ている、という点を主張したいです。

 

qiita.com

 

これまで取り組んでいた課題では、Webのインタプリタ上やCLI上で指定された結果を出す、といったものが殆どだったので、実際のプログラムの処理動作を(初心者にもわかりやすいように)視覚認識する機会にはあまり恵まれていませんでした。その点、Seleniumにおいては、ブラウザがその役目を疑似的に果たしてくれるので、「自分の書いたプログラムが勝手にに動いてくれている」ということを、わかりやすく認識する機会を提供してくれます。 この体験は、自身のモチベーションを跳ね上げることに一役買ってくれました。

 

自身の最初のSeleniumの用途としては、明らかに手動でやる分には非効率的だろう、と考えられるタスクを自動化させるために用いたのですが、これからも自身のルーティンタスクについて存分に活用していきたいなと思っています。現在、思いつく限りでも日常生活においてWeb上の2,3つほどの単調なタスクを抱えているので、自身のスキルの拡張性が高まる機会だと思って貪欲に取り組んでいきたいと考えています。ルーティンはその名の通り、任意の時間帯に定期実行させる必要があるので、こういったスキルについても学んでいく必要性がありそうです。