仕事

Google ColaboratoryでPython③ Webサイトから取得したデータをCSVに保存

ごじゃっぺ

Google ColaboratoryでPython③ Webサイトから取得したデータをCSVに保存

前回、Google ColaboratoryでPythonを実行してWebサイトからデータを取得するスクレイピングについてご説明しました。今回は、Webサイトから取得したデータをCSVファイルに保存する方法をご説明したいと思います。

必要なライブラリ

前回説明したrequestsとBeautifulSoupに加え、新たにpandasというライブラリとGoogle Colaboratoryのファイル操作のためのライブラリであるfilesを使用します。

ライブラリの機能

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

  • pandas・・・データ解析を支援する機能を持つライブラリです。今回はpandasのDataFrameオブジェクトに取得したデータをセットして使用します。DataFrameオブジェクトには表のようなイメージでデータを格納することができます。
  • files・・・Google Colaboratoryでファイルへの読み書きなどファイル操作をするために必要なライブラリです。

ライブラリのインポート

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

ライブラリのインポート

Webサイトから取得したデータをCSVファイルに保存する

前回と同様にWaMのサイトから、コラム一覧ページ(https://wam-pjt.jp/colum/)のデータを取得し、コラムのタイトルと掲載日をCSVファイルに保存したいと思います。

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

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

まずは目的のサイトからデータを取得しましょう。今回は一つの記事のかたまりであるarticleタグとそのクラスであるarticleEntryを指定してコラム記事のデータを取得します。

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

データの列を設定する

今回は記事の中からタイトルと掲載日をCSVファイルに保存したいと思います。保存するCSVファイルはこんなイメージです。

データの列を設定する

イメージに合わせてpandasのDataFrameに列をセットします。

pandasのDataFrameに列をセットする

必要なデータを取り出し、pandasに格納する

BeautifulSoupオブジェクトから必要なデータを取り出します。今回は掲載日とタイトルを取得したいので、ブラウザの「検証」モードから掲載日とタイトルのタグを調べます。掲載日はtimeタグ、タイトルはh2タグであることが分かります。

pandasに格納する

取得したデータをfor文で1つずつチェックし、timeタグ、h2タグを指定して、データを取り出します。取り出したデータをpandasに格納し、pandasに行を追加しておきます。

pandasに1行追加する

CSVファイルに保存する

csvファイル名とエンコードを指定し、files.downloadを実行します。

files.downloadを実行

「名前を付けて保存」ダイアログが表示されるので、ファイルを保存してください。

CSVファイルを保存する

保存されたファイルを開き、イメージ通りのCSVファイルが出来ていればOKです!

まとめ

いかがでしたか? Google ColaboratoryでPythonシリーズとして、Webサイトからデータを取得してCSVファイルに保存するまでを3回にわたり簡単にご説明しました。普段はPythonにあまり縁がない私にもできたので、「スクレイピングって難しそう......」と敬遠しているあなたにも絶対できるはず!ぜひチャレンジしてみてください。

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

制作メンバーはこちら!

制作メンバーのイラスト

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

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

ページトップへ戻る