PythonでLassieとdatasetを使用しWebページのデータを抽出しデータベースに保存してみます。
今回はLassieとdatasetを用います。この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ページのメタデータを抽出しデータベースに保存し、保存したデータを表示させることができました。
コメント