はじめに
今回は、Pythonを使って指定したWebページからスクレイピングを行い、抽出したデータをテキストファイルに保存する方法を紹介します。
具体的には、HTMLのh3タグに囲まれたテキストデータを取得し、その内容をscraped_data.txtというファイルに書き出すサンプルコードを解説します。
前回の記事でもスクレイピングについて紹介しているので、興味のある方は参考にしてみてください。
スクレイピングとは?
スクレイピングとは、ウェブページから特定の情報を自動的に抽出する技術です。
データ分析、リサーチ、そして自動化の分野で広く活用されていますが、スクレイピングを行う際にはそのサイトの利用規約やスクレイピングが許可されているかどうかを必ず確認しましょう。
使用するPythonライブラリ
今回のスクレイピングでは以下の2つのPythonライブラリを使用します:
・requests
:指定したURLのウェブページデータを取得するためのライブラリ
・BeautifulSoup4
:取得したHTMLデータを解析し、特定の要素を抽出するためのライブラリ
これらのライブラリがインストールされていない場合は、以下のコマンドでインストールします。
pip install requests beautifulsoup4
スクレイピングの実装例
次に、具体的なコード例を見ていきます。
import requests
from bs4 import BeautifulSoup
# URLを設定
url = 'https://metrosisetu.com/echo-show-15/'
# ページを取得
response = requests.get(url)
# ページ内容をパース
soup = BeautifulSoup(response.content, 'html.parser')
# 全てのh3タグを取得
h3_tags = soup.find_all('h3')
# テキストファイルに書き出し
with open('scraped_data.txt', 'w', encoding='utf-8') as file:
for h3 in h3_tags:
file.write(h3.get_text() + '\n')
上記コードは、指定したウェブページからh3タグに含まれるテキストを抽出し、それをテキストファイルに保存します。
ここでスクレイピングしているサイトは、私が過去に運営していたサイトのブログ記事です。
コードの解説
requests.get(url)
指定されたURLに対してHTTPリクエストを送り、HTMLデータを取得します。レスポンスとして返されるHTMLを解析するためにresponse.contentを使用します。
BeautifulSoup(response.content, 'html.parser')
BeautifulSoupを使って取得したHTMLデータをパース(解析)します。ここでは、HTML全体の内容をBeautifulSoupオブジェクトに変換し、特定のタグや要素を簡単に操作できるようにします。
soup.find_all('h3')
ページ内のすべてのh3タグを抽出します。このメソッドは、条件に一致するすべての要素をリスト形式で返します。
テキストファイルへの書き出し
ファイルを'w'モードで開き、utf-8エンコーディングを指定して文字化けを防ぎます。各h3タグのテキスト内容を改行を含めて書き込むために、file.write()を使います。
実行結果
このコードを実行すると、指定したページのh3タグに含まれるテキストがscraped_data.txtというテキストファイルに保存されます。
以下は、テキストファイルに書き込まれる例です。
【Echo Show 15】新登場 15.6インチフルHDスマートディスプレイ with Alexa
【Echo Show 5】第2世代 – スマートディスプレイ 2メガピクセルカメラ付き
【Echo Show 8】第2世代 – HDスマートディスプレイ 13メガピクセルカメラ付き
【Echo Show 10】第3世代 – モーション機能付きスマートディスプレイ with Alexa
【セット買い】Echo Show 10 + Nature Remo mini2スマートリモコン
【最新モデル】テンキーのおすすめ14選。Macbookにも使えるワイヤレス!
【2020年版】おすすめバリカン21選。自宅で簡単!【ピックアップ集】
【2021年最新】おすすめのディスプレイ11選。強く鮮明に出力!!【パソコン】
【2020年決定版】おすすめパソコンケース19選。人気ブランドも!【徹底比較】
【最新】おすすめマイク付きイヤホン4選。コスパ良し、性能良し!【高評価】
最近の投稿
アーカイブ
カテゴリー
実際のプログラム実行後の画面は以下になり、指定したページ内のh3タグの内容を簡単に抽出し、テキストファイルに保存できます。
応用:スクレイピング結果の応用例
今回紹介したコードを基に、他のタグの情報を抽出したり、頻出単語の分析、さらには機械学習などの応用分野にも発展させることができます。
たとえば、スクレイピング結果をもとに以下のような応用が考えられます:
・頻出単語の可視化(ワードクラウドの作成)
・新しいデータが追加された際の自動通知システムの構築
・スクレイピングデータのリアルタイム分析
まとめ
Pythonを使ったスクレイピングは、ウェブページから手軽にデータを取得し、データ分析や自動化の作業を効率化できます。
今回の例ではh3タグを抽出してテキストファイルに書き出す方法を紹介しましたが、他の要素や属性を解析することで、様々なデータを取得できる可能性があります。
参考記事