Pythonでスクレイピング

Pythonスクレイピングの導入と利用の注意ポイント

気象データの監視や研究用途、情報分析するといった際に必要なデータを収集するのにスクレイピングが活躍します。今回は、そのスクレイピングの導入・注意する点について調べました。スクレイピングをする際には気をつけることもあるので、その辺りも含め紹介します。

目次

  1. Pythonをインストールする
  2. Beautiful Soupをインストールする
  3. ページデータを取得する
  4. データを取得する
  5. 注意ポイント

Pythonをインストールする

スクレイピングするのに必要なPythonをインストールします。今回は、pyenvというpythonを複数バージョン管理できるツールを使ってインストールします。既にHomebrewなどでpythonをインストールしている方は、アンインストールしておくことをお勧めします。

pyenvをインストールする

今回、準備する環境はこちらです。

  • pyenv: v1.2.1
  • python: v3.6.0

1. Homebrewを使ってpyenvをインストールします。pipenvも人気のようで気にはなるのですが、今回は割愛します。PATH設定の部分は、.bash_profile等に書いておくことをお勧めします。

2. pyenvをインストールしたら、install コマンドを使ってpythonをインストールします。

3. アクティブなpythonのバージョンを3.6.0に切り替えます。

Beautiful Soupをインストールする

次は、取得してきたDOMデータを扱うためのPythonライブラリをインストールします。

1. pip3を使ってBeautiful Soupをインストール

2. Beautiful Soupがインストールされたか確認。エラーが生じなければインストール成功しています。

 

ページデータを取得する

次は、今取得したBeautiful Soupを使ってページデータを取得してDOMからデータを取得してみます。今回は、Yahoo! 天気からページ情報を取得します。

1. スクレイピングファイルを作成

2. 結果を表示

 

ページからデータを取得する

scraping.pyにDOM操作を追加。

2. 結果を表示

実行すると、このような感じで取得することができます。今回は1ページだけ取得対象にしましたが、複数ページから取得することもできます。

今回のサンプルコードはこちらです。
GitHub – hiro-nagami/scraping-sample/scraping01.py

注意ポイント

スクレイピングには気をつけるポイントがいくつかあります。
事件化してしまったケースもあります。Librahack

  • 実装次第では、DOSのように負荷を与えてしまう可能性がある
  • robots.txt、利用規約等に注意する
  • データの利用目的に気をつける

細かいところは、こちらのサイトが参考になると思います。
Qiita – Webスクレイピングの注意事項一覧

今回は、こちらの本を参考にしています。
PythonによるWebスクレイピング

まとめ

今回は、スクレイピング導入・注意ポイントについてまとめました。スクレイピングを利用することで、多くのデータを収集・分析して有用な情報を効率的に集めることができる強力な手法の1つです。容量・用法には注意して技術を活用しましょう。

Related post

  1. iOSアプリ開発

    iOSアプリ初心者が覚えておきたい10のUIクラス

    iOSアプリを開発したいけど、最初は何を知っていたら開発できるのかわか…

  2. テクノロジー

    ReactiveXとは?RxJSの入門と導入手順

    Rx (Reactive Extension)とはここ数年で話題になっ…

  3. iOSアプリ開発

    Firebase iOSの解説・セットアップ編

    アプリを作る・サービスを立ち上げるといったとき、ほとんどの場合はDBや…

  4. テクノロジー

    iOSアプリ開発が簡単にできるStoryboard入門

    iOSアプリを開発しようとXcodeをダウンロードしてプロジェクト作成…

  5. テクノロジー

    IBDesignable、IBInspectableを使ってStoryboardでデザインする方法

    iOSアプリ開発をStoryboardを使って開発している方も増えてき…

  6. iOSアプリ開発

    iOSアプリ開発者が本当にオススメする6つの技術系サイト

    今回は、iOSアプリエンジニアとして実際に良く参考にしているサイトを紹…

PAGE TOP