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アプリが作れるようになるおすすめの本8選

    アプリ開発にチャレンジできていなかったりアプリ開発に詰まってしまったり…

  2. iOSアプリ開発

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

    APIからデータを取得する時、JSONでデータを受け取ることがあるかと…

  3. iOSアプリ開発

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

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

  4. テクノロジー

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

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

  5. Pythonでスクレイピング

    BeautifulSoup4でid, classを持つDOMを取得して効率化しよう!

    前回は、"スクレイピングでヘッダー情報を付与する方法とその目的"を紹介…

  6. テクノロジー

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

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

PAGE TOP