IT×仕事術シリーズPython最速データ収集術
〜スクレイピングでWeb情報を自動で集める

書籍の概要

この本の概要

「競合商品のデータを毎回探すのは大変」
「常にチェックしている売上ランキングをまとめおきたい」
「情報を集めるのに手間取って,じっくり分析する時間がない」

こんな情報収集の悩みは,プログラムを使えば解決できます!

多くのビジネスにおいて,自社や他社の商品情報や人気トレンド,口コミ評判などのデータ収集・分析は欠かせません。しかし,膨大なネット上の情報を手作業で集めるのは容易ではありません。データ収集に時間がかかりすぎてしまい,本来の目的である分析に時間をかけられないケースも多いでしょう。

そんなときは,データ収集をプログラムで自動化してみましょう!

本書では,プログラミング言語Python(パイソン)を使ったスクレイピングという技術で,WebページやSNSなどから自動でデータ収集する方法を学べます。初心者でも実践できるように,プログラミングやWebページのしくみの知識は必要最小限に抑え,練習用のページやサンプルのプログラムでスクレイピングを実践しながら学びます。練習用ページなどには,実際のビジネス利用シーンをイメージしやすい事例を用意しました。

プログラミングで業務を自動化・効率化したいビジネスパーソン必見の1冊です!

著者の一言

近年,さまざまなデータがWebページなどを通じて,インターネット上で共有されるようになってきています。ビジネスの現場においても,インターネットを通じて,製品の売上ランキングや他社の新製品情報などのデータを 収集する機会が増えてきています。
それにもかかわらず,効率的なデータ収集の方法は十分に普及していないでしょう。多くの人は,定期的にいくつかのWebページを訪問しては,更新されていないかチェックし,ダウンロードしたりコピーしたりして,データをいまだに手作業で集めています。その結果,データ収集にとても時間がかかってしまい,せっかく集めたデータを活用したくても,分析に使える時間が減ってしまっているのが現状です。
また,日常の業務を自動化・効率化するようなプログラミングの書籍もいくつか出版されていますが,多くのビジネスパーソンからはこんな声もよく聞かれます。

「プログラミングは難しそう」 「仕事が忙しく,勉強に使える時間もほとんどない」

そこで本書では,初心者でも理解しやすいプログラミング言語Pythonで,効率的にデータ収集する方法を学んでいきます。Pythonは他のプログラミング言語と比べてかんたんです。あらかじめ用意されたプログラムの部品(ライブラリ)を活用して,少ないコードで非常に多くのことを実現できます。
その中でも,Webページからのデータ収集に特化した「Webスクレイピング」のライブラリを活用することにより,自動的にデータを収集できるようになります。
本書では,以下のような解説を心がけました。

  • Python初心者でも理解できるように,プログラミング環境の準備からていねいに解説
  • Pythonやデータ収集の基本を最速で習得できるように,最低限必要なトピックに絞り込む
  • 実際にビジネスのどのような場面で利用すればよいかイメージしやすいように,実用的な事例を扱う

本書を通じて,Pythonを用いたWebスクレイピングで世界中のWebサイトから自動的にデータ収集する方法をマスターして頂き,データを効率的に収集・活用することで,ビジネスにおける成果の向上に貢献できれば幸いです。

(本書「はじめに」より)

目次

  • はじめに

第1章 データ収集をハックする

1-1 プログラムを使って自動でデータを集める

  • データを集める重要性が高まっている自動収集の必要性とメリット
  • 本書で取り上げるトピック

1-2 自動で集められるデータとは

  • データの分類を知る
  • データの提供方法を知る
  • 本書で取り上げる自動収集データ

1-3 自動収集の注意点を押さえる

  • 1. サイトの利用規約を守る
  • 2. データ取得には十分な間隔をあけて,サーバーに負担をかけすぎない
  • 3. 取得したデータの利用に際しては,著作権や個人情報を侵害しない

第2章 Webからデータを集める準備

2-1 データ収集に役立つPython

2-2 Pythonが使える環境を準備する

  • Anacondaを準備する
  • Jupyter Notebookの使い方を理解する
  • Jupyter Notebookを起動する
  • Pythonのプログラムを実行する
  • エディットモード・コマンドモードを理解する
  • ショートカットキーを理解する
  • 作成したノートブックを保存する
  • Jupyter Notebookを終了する

2-3 Python超入門

  • データ型と変数を理解する
  • 数値計算をする
  • 文字や数値を画面に出力する(print関数)
  • データ構造を押さえる(リスト,タプル,辞書)
  • 条件で処理を分岐させる(if文,else)
  • くり返し処理を押さえる(for文,while文)
  • 関数で何度もおこなう処理をまとめる
  • ライブラリの使い方を理解する

第3章 データ自動収集のしくみを押さえる

3-1 Webページ・WebAPIのしくみを理解する

  • Webページの通信方法を押さえる
  • HTMLを理解しよう
  • HTMLタグの種類を押さえる
  • HTMLタグの属性を押さえる
  • HTMLの階層構造を理解する
  • CSSを理解しよう
  • JavaScriptを知ろう
  • Web APIを理解しよう

3-2 データのフォーマットや種類を理解する

  • フォーマットの種類と特徴
  • データのおもな種類とオープンデータ

3-3 Webページからデータを取得する方法を理解する

  • データ取得の3ステップ

3-4 ステップ1:HTMLをダウンロードする

  • requestsをインストールする
  • requestsの使い方を理解する
  • ダウンロードしたHTMLの内容を確認する

3-5 ステップ2:データを抽出する

  • Beautiful Soupをインストールする
  • Beautiful Soupの使い方を理解する
  • Chrome開発者ツールの使い方を理解する
  • データを抽出する3つの方法
  • 抽出方法1 要素を検索して取り出す
  • 抽出方法2 HTMLの階層を移動して探し出す
  • 抽出方法3 CSSセレクタを用いて要素を指定する
  • 3つの抽出方法の選び方
  • 3つの方法を組み合せて使う
  • CSSセレクタをもっと理解する

3-6 ステップ3:データを保存する

  • テキストデータを保存する
  • バイナリデータ(画像,PDF,EXCELファイル)を保存する

3-7 Webページから実際にデータを取得する

  • 練習用ページを確認する
  • 作成するプログラムを理解する
  • データ取得方法を検討する
  • 一覧・詳細ページからデータを取得する
  • 取得したデータを保存する

第4章 Pythonでデータを自動で集める

4-1 売れ筋ランキング情報を収集しよう

  • 売れ筋でマーケットトレンドを把握しよう
  • Webページからの情報収集の準備
  • データ取得方法を検討する
  • ライブラリをインポートする
  • 一覧ページからデータを取得する
  • 詳細ページからデータを取得する

4-2 人気商品の画像情報を集めよう

  • 活用の幅が広がる画像情報
  • 画像情報収集の準備
  • データ取得方法を検討するライブラリをインポートする
  • 一覧ページからデータを取得する
  • 一覧ページから取得したデータを保存する
  • 画像データをダウンロード・保存する

4-3 メディアから記事情報を収集しよう

  • メディアから定性情報を収集しよう
  • 記事情報収集の準備
  • データ取得方法を検討する
  • ライブラリをインポートする
  • 記事データを取得する
  • 取得した記事データを保存する

4-4 オープンデータの統計情報を収集しよう

  • オープンデータで自社サービスを強化しよう
  • 政府統計の総合窓口e-Statとは
  • e-Stat APIの基本的な使い方
  • 統計データを取得する
  • 取得した統計データを保存する

4-5 TwitterAPIから口コミ情報を集めよう

  • 口コミ情報でサービス・製品の改善点を分析しよう
  • Twitter APIを準備する
  • Twitter APIの基本的な使い方
  • ツイートデータを取得する取得したツイートデータを保存する

第5章 集めたデータを活用しやすい形にする

5-1 データ活用までに必要な準備

5-2 保存したデータを取り出す

  • データ表の形式を理解する
  • CSVファイルを読み込む
  • 読み込んだデータを確認する

5-3 データを整形する

  • 不要な列データを取り除く
  • 欠損データに対応する
  • データ型を変換する
  • 整形したデータを保存する

5-4 データをグラフで表示する

  • 必要な行だけを取り出す
  • データフレームを結合する
  • 統計値を取得する
  • グラフに表示する
  • 索引
  • 著者プロフィール

著者プロフィール

清水義孝(しみずよしたか)

大手製造業でデータサイエンティストとして,ビックデータの分析に携わっている。その経験を活かして,データ収集・分析,BIツールに関する社内講座を担当。オンライン動画講座サイト「Udemy」で動画講座「Pythonによるビジネスに役立つWebスクレイピング」などを制作・販売中。4000名以上の受講生を持つ。