PythonでLassieとdatasetを使用しWebページのデータを抽出しデータベースに保存する

スポンサーリンク

PythonでLassieとdatasetを使用しWebページのデータを抽出しデータベースに保存してみます。

今回はLassiedatasetを用います。この2つのライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)

■Lassieとdatasetを使用しWebページのデータを抽出しデータベースに保存する

では、早速Lassieとdatasetを使用しWebページのデータを抽出しデータベースに保存するスクリプトを書いていきます。

■コード

import dataset
from lassie import Lassie

# インメモリデータベースの作成
db = dataset.connect('sqlite:///:memory:')

# テーブルの作成
table = db['webpages']

# Lassieの初期化
lassie = Lassie()

# ウェブページのURL
url = 'https://www.yahoo.co.jp/'

# Lassieを使用してウェブページのメタデータを抽出
metadata = lassie.fetch(url)

# メタデータをデータベースに保存
table.insert(dict(url=url, title=metadata.get('title'), description=metadata.get('description')))

# データベースからデータを取得して表示
for row in table:
    print(f"URL: {row['url']}")
    print(f"Title: {row['title']}")
    print(f"Description: {row['description']}")

まずはdatasetモジュールとlassieモジュールをインポートします。次にdataset.connect()関数を使用し、インメモリデータベースを作成し、それをdb変数に割り当てます。’sqlite:///:memory:’はSQLiteデータベースをメモリ内に作成するための接続文字列です。

その後、「table = db[‘webpages’]」と記述し、db変数内のデータベースに’webpages’という名前のテーブルを作成し、それをtable変数に割り当てます。

割り当てた後に、「lassie = Lassie()」と記述し、Lassie()クラスのインスタンスを作成し、それをlassie変数に割り当てます。これにより、Lassieオブジェクトを使用してウェブページのメタデータを抽出する準備が整います。準備が整いましたので「url = ‘https://example.com’」と記述し、抽出したいウェブページのURLを指定しています。今回は「https://www.yahoo.co.jp/」を記述しています。その後「metadata = lassie.fetch(url)」と記述し、lassieオブジェクトのfetch()メソッドを使用して、指定したURLのウェブページからメタデータを抽出し、metadata変数に格納します。

格納後、table変数のテーブルに、辞書形式でurl、title、descriptionのデータを挿入しています。ここで、metadata.get(‘title’)およびmetadata.get(‘description’)を使用して、メタデータからタイトルと説明を取得します。

最後にfor文を用いてtable変数のテーブルからデータを取得して、rowという変数に順番に割り当てます。forループ内のコードブロックでは、各行のデータを使ってURL、タイトル、および説明を表示します。

■検証・実行

今回書いたスクリプトを「l_web.py」という名前でPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみるとLassieとdatasetを使用し、指定したWebページのメタデータを抽出しデータベースに保存し、保存したデータを表示させることができました。

 

コメント

タイトルとURLをコピーしました