仕事

GoogleColaboratoryでPython② Webサイトからデータを取得してみよう!

ごじゃっぺ

GoogleColaboratoryでPython② Webサイトからデータを取得してみよう!

前回、Google ColaboratoryでPythonを実行するための基本的な設定についてご説明しました。今回は、Webサイトからデータを取得するスクレイピングについて説明したいと思います。

必要なライブラリ

今回は、RequestsとBeautifulSoupというライブラリを使用します。GoogleColaboratoryには主要なライブラリがインストールされているので、事前にインストールをする必要はありません。

ライブラリの機能

それぞれのライブラリの機能について説明します。

  • Requests・・・Webサイトのデータを取得することができます。
  • BeautifulSoup・・・Requestsで取得したデータからBeautifulSoupオブジェクトを生成することで、HTMLデータの構文を解析することが可能。例えば、タグやクラス名を指定してデータを抽出することができます。

ライブラリのインポート

初めに使用するライブラリをインポートします。

ライブラリのインポート

Webサイトからデータを取得する

さっそく、実際のWebサイトからデータを取得してみましょう。今回はこの記事を掲載しているWaMのサイトから、コラム一覧ページ(https://wam-pjt.jp/colum/)のデータを取得してみましょう。

Webサイトからデータを取得する

サイトからHTMLデータを取得する

まずは目的のサイトからデータを取得しましょう。

サイトからHTMLデータを取得する

  1. 目的のサイトのURLを変数にセットする
  2. Requestsのgetメソッドで先ほどの変数を指定し、指定したサイトのデータを取得する
  3. textメソッドを実行して、取得したデータの内容をBeautifulSoupオブジェクトとして生成する

BeautifulSoupオブジェクトから必要なデータを取り出す

では、BeautifulSoupオブジェクトから必要なデータを取り出してみましょう。例えば、コラムのタイトルを取り出す場合には、タイトルのタグとクラス名を指定する必要があります。

BeautifulSoupオブジェクトから必要なデータを取り出す01

クラス名は、ブラウザの「検証」モードで知ることができます。今回の場合、コラムタイトルのタグは「h2」、クラス名は「articleEntry__title」であることが分かります。ではタグとクラスを指定してタイトルを取得してみましょう。
そこでBeautifulSoupオブジェクトのfind_allメソッドを使用して、h2タグのarticleEntry__titleクラスを指定し、コラムのタイトルを取り出します。

BeautifulSoupオブジェクトから必要なデータを取り出す02

  1. BeautifulSoupオブジェクトのfind_allメソッドで、タグ(h2)、クラス名(articleEntry__title)を指定し、ページ内の全てのコラムタイトルを取得する
  2. 取得した内容をprintで出力し、内容を確認

取得した内容をprintで出力した結果がこちらです。コラムのタイトルが取得できたことが分かります。

取得した内容をprintで出力した結果がこちらです

まとめ

いかがでしたか?今回は、Webサイトにアクセスし目的のデータをスクレイピングする方法について簡単に説明しました。BeautifulSoupを使えば、簡単にHTMLデータを取得できることがご理解頂けたと思います。次回は取得したデータをcsvファイルに保存する方法を説明したいと思います。

お仕事のご依頼・ご相談はWaM(ワム)まで

制作メンバーはこちら!

制作メンバーのイラスト

家庭を持つママやパパといった
様々な事情を抱えたメンバーたちで
WaMサイトの運営を行っています。

少しでもママにとって働きやすく、
そして不安を取り除けるように、
私たち目線で情報を発信していきます。

ページトップへ戻る