Pythonでスクレイピングを行う

Python でスクレイピングを行う

Web サイトのデータを収集する手法にスクレイピングというものがあります。Python を使って、Web から情報を収集・加工して利用することをスクレイピングと呼んでいます。 まずは、バージョン確認をしておきましょう。Python をインストールしたら、ターミナル(コマンドプロンプト)を開き、次のコマンドを実行します。

$ python -V

出力される文字列がPython X.X.Xであれば、大丈夫です。最新の Python バージョンをインストール済みであることを確認しましょう。 次に、必要なモジュールをインストールします。pip というパッケージ管理ソフトウェアを使って、以下のコマンドを実行します。

$ pip install requests
$ pip install beautifulsoup4

以上の 2 つのモジュールをインストールしたら、スクレイピングを行う為の準備は整いました。

さて、Python でスクレイピングを行う場合、次の工程を踏む必要があります。まず、対象となる Web サイトから、HTML コードを取得してくる必要があります。この作業を「リクエスト」と呼びます。今回は、まず必要なモジュールである requests を import します。

import requests

次に、requests を使って HTML コードを取得してきます。get メソッドを使います。

url = "https://www.example.com/"
res = requests.get(url)

次に、取得した HTML を解析して情報を取り出す必要があります。今回は BeautifulSoup モジュールを使います。BeautifulSoup モジュールをインポートし、解析結果を取得します。

from bs4 import BeautifulSoup
soup = BeautifulSoup(res.text, 'html.parser')

解析が終わったら、取得したい情報を取り出します。BeautifulSoup は、find メソッドや find_all メソッドを使うことで情報を取り出すことが可能です。例えば、<h1>のテキストを取得したい場合は、以下のように記述します。

title = soup.find('h1').text

また、<span>タグの中にあるテキストを取得したい場合は、以下のように記述します。

texts = soup.find_all('span')
for text in texts:
    print(text.text)

取得したデータは、numpy や pandas などを使って加工して利用すると良いでしょう。 以上のような流れで、Python でスクレイピングを行うことができます。

スクレイピングを行う際には、サイトの構造を理解する必要があります。そのため、HTML・CSS の知識を入れておくと理解しやすくなります。

今回の記事では、Python でスクレイピングを行う際の必要な準備と手順を紹介しました。今回の記事を参考にしながら、Python・BeautifulSoup を使ってスクレイピングを行ってみましょう!