Pythonは、Webスクレイピングに非常に適した言語です。特に、JSON形式のデータを取得する際には、その力を発揮します。この記事では、Pythonを使ってWebスクレイピングを行い、JSONデータを取得する方法を紹介します。
ライブラリのインストール
まずは、スクレイピングに必要なライブラリをインストールします。ここでは、requests
とbeautifulsoup4
を使用します。
pip3 install requests
pip3 install beautifulsoup4
pip3 install lxml
JSONについて
JSONは「JavaScript Object Notation」の略で、「JavaScript 言語の表記法をベースにしたデータ形式」です。しかし、表記が JavaScript ベースなだけで、それ以外のさまざまな言語で利用できます。JSONでは、ある数値と、その数値の名前であるキーのペアをコロンで対にして、それらをコンマで区切り、全体を波かっこで括って表現します。
スクレイピングの基本
Pythonでスクレイピングを行う基本的な手順は以下の通りです。
import requests
from bs4 import BeautifulSoup
import json
target_url = 'www.*****.com'
r = requests.get(target_url)
soup = BeautifulSoup(r.text, "html.parser")
このコードは、指定したURLのWebページを取得し、そのHTMLをパースしています。取得したHTMLは、BeautifulSoupオブジェクトとして保存され、これを使ってHTMLの解析を行います。
JSONデータの取得
JSONデータを取得するには、まずHTMLからJSONデータが含まれる部分を見つけ出す必要があります。これは、HTMLの中に埋め込まれた<script>
タグの中にあることが多いです。
title_part = soup.find_all("script", {"type": "application/ld+json"})
for i in title_part:
title = i.get_text()
a = json.loads(title)
print(a)
このコードは、HTMLから<script>
タグの中のJSONデータを取得し、それをPythonの辞書型に変換しています。これにより、JSONデータの各要素に簡単にアクセスすることができます。
以上が、Pythonを使ってWebスクレイピングを行い、JSONデータを取得する基本的な手順です。この知識を活用して、Webから自由にデータを取得し、それを活用してみてください。