![](/_astro/python-scraping_Z4Szh6.jpg)
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 を使ってスクレイピングを行ってみましょう!