Pythonにできることは自動化しよう!【第8回 webスクレイピング(導入)】

こんにちは、unogram管理人のうのちゅ〜です。

【Pythonにできることは自動化しよう!】シリーズとして、Pythonの基礎から順を追って学習し、作業の自動化・効率化を実現する能力を身に着けていきます。Pythonの基礎について学ぶだけで、大規模なコードを書かなくても十分に役に立つプログラムを記述することができるようになります。Pythonは気になるけど、プログラミングには苦手意識がある方も安心してトライしてみてください!

本シリーズでは、以下のようなことができるようになります。

  • ファイルの読み書き・管理
  • Webサイトからファイルをダウンロード
  • エクセルシート操作
  • PDF・ワード文書操作・テキスト抽出
  • 電子メール・SMS送信

うまく活用すれば作業に役立ちそうなワードがたくさん並んでいますね!

なお、本シリーズでは一部以下の書籍を参考にしています。「退屈なことをPythonにやらせる」ようになるためにはうってつけの書籍なので、ぜひ参考にしてみてください。

それでは見ていきましょう!



Webスクレイピングの基礎

scrapeとは、「削る」、「擦る」といった意味をもつ単語であり、Webスクレイピングという言葉は、Webから情報を取得することを指して使われます。

普段、ブラウザ上で様々な情報を閲覧したり、コンテンツをダウンロードしているかと思います。このような作業のうち、大量に操作する必要のあるものや、定期的にルーティンワークとして情報取得する作業においては、Webスクレイピングで自動化することによって、大幅に作業を効率化することができます。

PythonにもWebスクレイピングのために有用なツールが揃っています。まずはPythonによるWebスクレイピングの基礎として、便利なモジュールについて把握しておきましょう。

webbrowserモジュール

webbrowserモジュールは、Pythonに付属するモジュールです。ChromeやFirefoxといったブラウザを指定して、所望のwebサイトを開くことができます。

参考:webbrowser— 便利なウェブブラウザコントローラー

応用例

webbrowserモジュールの応用例としては、次のようなアプリケーションが考えられます。

  • 普段使用する複数のサイトを一度に開くプログラム
  • 開いているページ上のすべてのリンクを異なるタブで開く
  • コマンドラインやクリップボードに住所を指定し、その住所のGoogleマップをwebブラウザで開くプログラム

requestsモジュール

Web上のファイルやwebページ自体をダウンロードする際に使用します。こちらはPython付属ではないので、pip等でインストールする必要があります。

%pip install requests
応用例

requestsモジュールの応用例としては、次のようなものが考えられます。

  • ニュースサイトから定期的に情報を取得する
  • コマンドライン引数に指定した検索ワードを使ってGoogle検索



Beautiful Soupモジュール

PythonによるWebスクレイピングでは定番のモジュールです。HTMLのパース(どのようにかかれているかを解釈すること)に必須のライブラリです。webページから必要なデータを取得するにはHTMLの記述内容を読み解くことが必要で、これにはbeautifulsoupモジュールを使うのが便利です。

参考:Beautiful Soup Documentation

現在はbeautifulsoup4の利用が推奨されているため、こちらをインストールします。

%pip install beautifulsoup4
応用例

beautifulsoup4モジュールの応用例としては、次のようなものが考えられます。

  • webページからほしい画像などのデータをダウンロードするために、特定のURLを検索する
  • web上の日々更新される特定のデータを定期的に取得し、日々の変動を解析するために使用する

Seleniumモジュール

こちらも定番のライブラリです。seleniumモジュールはブラウザの起動からクリック、フォームへの記入のような、通常画面を見ながらキーボードやマウスを使って人間が行うような作業を自動で行ってくれます。seleniumモジュールを使用したプログラムを走らせると勝手にブラウザ上で画面が遷移したり、文章が入力されていったりして、なんとも不思議な気分になります。

なお、SeleniumはPythonに限らずJavaやC#、Rubyなどの言語でも使用することができます。

参考:Seleniumブラウザー自動化プロジェクト

こちらもpipでインストールします。

% pip install selenium
応用例

seleniumモジュールの応用例としては、次のようなものが考えられます。

  • 自動でwebページのスクリーンショットを撮る
  • 自動でユーザー名やパスワードを入力するマイページにログインし、日々更新されるデータを自動取得する



まとめ

今回は、【Pythonにできることは自動化しよう!】シリーズ第8回として、Webスクレイピングの基礎について学習しました。

今回から、第7回までに学習したPythonの基礎事項を踏まえた作業の自動化・効率化のための応用編に入っています。まだご覧になっていない方で、Pythonの知識に不安がある方は、ぜひPythonにできることは自動化しよう!【第1回 リスト】から学習してみてください。

さらに追加で詳しく学びたいという方は、下記の参考書などを使った学習にも挑戦してみてください。

おすすめ参考書

冒頭でも紹介しましたが、Pythonによる自動化に向けた学習は、本シリーズでも参考にしている次の書籍がおすすめです。「退屈なことをPythonにやらせる」ようになるためにはうってつけの書籍なので、ぜひ参考にしてみてください。