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. テクノロジー

    今週のITニュースハイライト 7/9 – 7/15

    7月9日〜7月15日に話題・気になったITニュース…

  2. iOSアプリ開発

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

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

  3. テクノロジー

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

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

  4. テクノロジー

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

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

  5. iOSアプリ開発

    xcconfigを使って本番とテスト環境を切り替える方法

    iOSアプリを開発していると、本番の環境とテストする環境を切り替えて開…

  6. テクノロジー

    今週のITニュースハイライト 6/25 – 7/1

    Twitterの@nagami_hiroでは毎日きになるITニュースや…

  1. iOSアプリ開発

    Firebase iOSの解説・セットアップ編
  2. テクノロジー

    今週のITニュースハイライト 6/25 – 7/1
  3. テクノロジー

    ReactiveXとは?RxJSの入門と導入手順
  4. iOSアプリ開発

    SwiftでJSONデータを使いやすくする!Codableの使い方
  5. 日記

    先日、第7回Creators MeetUpに参加してきました!
PAGE TOP