【Pythonスクレイピング】超長いWEB記事の重要箇所をCSVで書き出す

やっほ!Pythonで遊んでるテツヤマモト(@okapo192)です。

今回のテーマは「Pythonのスクレイピング」です。

 

スクレイピングは、英語の(scrape:削り取る)が語源で、WEBページからデータを収集する技術のことを指します。

機械学習やディープラーニングを行う際の、事前のデータ収集で使われることが多くて、言わばAIエンジニアの超基礎スキルですね。

 

今回は、シンプルなスクレイピングコードを紹介しつつ、実際にどんなことができるのか体感していただければと思います。

スクレイピングは日常でも意外と役に立つ技術ですし、コピペ一発ですぐにプログラムを動かすことも可能ですよ!

スポンサーリンク

今回やりたいこと

今回は、データアーティスト株式会社の「AI企業一覧」のブログ記事のデータを収集します。

このページには、国内のAI関連の企業が268社まとめられているんですが、デザインにこだわっているせいか、ページがやたら重いんですよね…。

スクリーンショット 2019 05 03 16 18 09

これだとどうしても扱いにくいので、必要なデータだけをスクレイピングして、僕自身のAI企業への就活(笑)に役立てます。

▼最終的には、以下のようにCSVで企業のリストを出力してみます。

スクリーンショット 2019 05 03 16 16 00
テツヤマモト
こちらを応用すれば、おすすめ漫画100選みたいな超長い記事から、漫画のリストを収集することもできますね!

手順①:Google Colaboratoryの準備をする

今回はGoogle Colaboratoryを使って、Pythonのプログラムを動かします。

こちらを使えば、自分のPCにPythonの環境構築などが不要なので、初心者でも今すぐプログラムを動かせる形です。

詳しくはこちらの方のブログ記事がわかりやすそうなので、参考にしていただいて準備を進めましょう。

 

▼準備ができたら、新規ノートブックを作ります。とても便利なので初心者に限らず、今後もお世話になるかと!

スクリーンショット 2019 05 03 16 27 15

スポンサーリンク

手順②:Pythonコードでコピペ一発!

準備ができたので、早速Pythonを動かしてみます。

先にスクレイピングのプログラミングを紹介しちゃいますね。

▼こちらのコードをノートブックにコピペして、SHIFT + ENTERを押せば、CSVファイルがダウンロードされるはずです。

スクリーンショット 2019 05 03 16 30 14 1

CSVファイルをGoogleドライブにアップロードすれば、すぐにExcel的にデータを扱える感じですね。便利!

スクレイピングコードの解説

はい終わり!ってのもつまらないので、簡単にプログラムの概要を解説します。

①必要ライブラリのインポート

まずは必要なライブラリをインポートします。

スクレイピングのやり方も様々あるのですが、今回はBeautifulSoupというシンプルで使いやすいライブラリを選択しました。

②必要情報の定義

こちらでは情報したいページのURLを定義して、requestsライブラリを使ってhtmlデータを取得しました。

また、今回はpandasのデータフレーム(エクセルの表のようなもの)を使って情報を整理するので、こちらもあらかじめ定義します。

③BeautifulSoupでスクレイピング

こちらでBeautifulSoupを用いて、取得したHTMLデータから必要な情報を書き出していきます。

Google Cromeブラウザの「検証」機能を使って、欲しい情報周辺のタブ(div, aなど)や、class名などを調べてみます。

スクリーンショット 2019 05 03 16 47 58

今回は、どうやらCompanyというクラス名がついたdivタブによって、会社名・会社ホームページ・概要などの情報が抜き出せそうです。

あとは上記コードのように、欲しい情報が抜き出せるようタブ名・クラス名を与えていくだけですね。

一点、find_all()メソッドは対象部分を全て取得、find()メソッドは最初の1つを取得することに注意です。

④データフレームをCSV形式で保存する

あとは、取得したデータをデータフレームに格納していき、最終的にCSVで出力するだけです。

とてもシンプルなプログラムですが、WEBページから286社もの情報を一瞬で取得することができました。

スポンサーリンク

おまけ:Pythonによるスクレイピング勉強法

スクレイピングはとても基礎的なスキルではあるんですが、様々な場面で応用を利かせることができます。

1番のおすすめ学習法は、僕と同様にAIdemy Premiumに参加することなんですが、まぁちょっとスクレイピングだけが目的なら高すぎです。

 

コスパの良い選択肢は、以下3つかなぁ。

あとは動画なのか、本なのか、WEBなのかの違いなので、自分に合ったものを選択すると良い気がします。

スクレイピング以外も学びたいのであれば、Pythonによるスクレイピング&機械学習』が超良書なので一択かな。

 

▼僕がPythonを勉強してきた方法は、別記事で詳しく解説してます!

【Aidemy Premium Planの評判】AI未経験からの体験談を本音で書く

2019年4月5日

AI・Python特化のプログラミングスクール4選【未経験から就職可】

2019年3月14日

ABOUT

旅好きWEBマーケター🌏 北大経済▶︎旅行誌編集▶︎フリーライター▶︎世界一周36ヶ国▶︎海外ノマド2年半(ブログとサイト制作) ▶︎旅行系IT企業でWEBマーケ担当 ■副業でブログ(最高月22万PV)とYouTubeとかやってる ■英語とスペイン語が少しできる ■オードリーのオールナイトニッポンのヘビーリスナー ■詳しいプロフィールはこちら