.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. Python
  5. Pythonでのスクレイピングの極意を解説!スクレイピングの基本的な使い方もわかりやすく紹介!

Pythonでのスクレイピングの極意を解説!スクレイピングの基本的な使い方もわかりやすく紹介!

  • Python
  • プログラミング言語
公開日時:   更新日時:
Pythonでのスクレイピングの極意を解説!スクレイピングの基本的な使い方もわかりやすく紹介!
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>
    システム
    エンジニア
    Pythonでのスクレイピングの使い方について教えてください。
    プロジェクト
    マネージャー
    分かりました。Pythonでのスクレイピングの基本的な使い方についてご紹介しましょう。

    スクレイピングとは?


    スクレイピングとはWebサイトから自動的にデータを取得し、そのデータから必要な情報を抽出・加工することをいいます。中でもPythonはライブラリが充実しているので、スクレイピングの基本をマスターするのは比較的簡単といえます。

    スクレイピングで可能なことは

    スクレイピングは、Webサイトからの情報の収集であり、スクレイピングで可能なことは、例えば株式情報の収集や機械学習のための画像の収集など様々です。

    ここでは、robots.txtでスクレイピングを許可されている「株投資メモ」サイトから情報の抽出を行います。robots.txtとはサイトのルートディレクトリに置かれているファイルで、そこにスクレイピングをAllow(許可)するのかDisallow(禁止)しているのかが書かれています。法に抵触しますので禁止のサイトは、スクレイピングはやめましょう。

    スクレイピングの方法

    スクレイピングするには、HTMLの知識が必要です。それは、スクレイピングはHTMLのタグを頼りに情報を収集するからです。

    サイトからHTMLのタグごとに情報を収集し、それをタグを頼りに収集する情報を絞って欲しい情報を抽出することになります。

    Pythonでのスクレイピングでよく使われるライブラリ

    Pythonでのスクレイピングでよく使われるライブラリに、HTMLデータを取得するのにRequests、収集した情報からデータを抽出するのにBeautiful Soupなど、そして、JavaScriptを使用した動的なサイトからの情報収集やサイトへのログインにはSeleniumがよく知られています。

    ここではRequestsとBeautiful Soup、そしてエクセルを操作するOpenPyXLを利用します。

    スクレイピングの実践

    株式投資メモからの株価の情報を収集します。そして、収集した株価をエクセル・ファイルに保存します。その一連のことをPythonのライブラリを利用して、スクレイピングで自動的に行うのです。

    Requestsをインストール

    Python3がインストールされていて、パスも通っていることを前提にします。ライブラリRequestsをインストールします。環境はWindows10で、PowerSellを使用します。

    pipのバージョンが古いと警告が出ましたので、pipをバージョンアップしておきます。

    Beautiful Soupのインストール

    次のコマンドをPowerShellに打ち込みます。

    OpenPyXLのインストール

    次のコマンドをPowerShellに打ち込みます。

    Pythonのプログラムのソースコード

    いよいよPythonによるスクレイピングの実践です。次のソースコードが株式投資メモサイトから株価の情報を収集し、それをエクセル・ファイルに保存するソースコードです。

    ソースコードの解説

    ソースコードの解説をしていきますが、コメントに書いてあるとおりです。Pythonによるスクレイピングはライブラリを利用するので、型が決まっていて、ここに書いたソースコードを利用すれば、スクレイピングが許可されているサイトから情報の収集は可能です。

    とあるところは、ここでは例としてバンダイナムコホールディングス(銘柄コード:7832)
    の2021年度を調べます。

    ユーザーエージェントの記入

    ソースコードにはユーザーエージェントの記入箇所があります。ユーザーエージェントは次のサイトの「現在のブラウザー」の箇所がユーザーエージェントになります。

    確認くん

    個人的ですが、私の場合は次がユーザーエージェントでした。

    Pythonのプログラムを走らせる

    それでは必要箇所の記入が終わりましたので、ソースコードを適当なところに、例えばscraping.pyとして保存し、プログラムをコンパイルします。

    すると同じディレクトリに「7832 (株)バンダイナムコホールディングス.xlsx」ファイルが生成されているはずです。それを開くとプログラムを走らせた日までの株価のデータが抽出されています。

    それをグラフにするなど加工すれば、価値あるデータに変身です。

    システム
    エンジニア
    Pythonでのスクレイピングの使い方、よく分かりました。
    プロジェクト
    マネージャー
    スクレイピングをマスターすれば、いろいろと応用が利き、様々なデータの収集が可能ですので、ぜひスクレイピングに興味のある方は挑戦してください。

    最後に

    Pythonによるスクレイピングは、ほとんどがライブラリに依存していますので、ソースコードはここで紹介したもので十分に応用が利きます。ただし、現在では多くのサイトでスクレイピングが禁止されていますので、法を犯さないように気を付けてスクレイピングを試してください。

    また、Pythonに興味のある方は、一度はスクレイピングに挑戦してみてはいかがでしょうか。得るところが多くあります。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    新着案件New Job