著者:佐藤 秀輔
対話型AIサービス「ChatGPT」が注目を集めています。特に、2023年3月に登場した「GPT-4」という大規模言語モデル(LLM)を利用可能になってからは自然言語の理解力が飛躍的に向上し、指示に基づいて、さまざまな処理を自動化できるようになっています。本特集では、ChatGPTを個人で活用する例として、家計簿レビューをさせる方法と、API(Application Programming Interface)を利用してWebスクレイピングをさせる方法を紹介します。
シェルスクリプトマガジン Vol.91は以下のリンク先でご購入できます。![]()
![]()
図1 ランダムな家計簿データを生成するPythonスクリプト
import datetime
import random
itemlist = ['食料品', '外食費', '日用品', '家財道具',
'交通費', '電気代', '水道代', 'ガス代',
'ガソリン代', 'その他']
for i in range(366):
basedate = datetime.datetime(2024, 1, 1)
date = basedate + datetime.timedelta(days=i)
item = itemlist[random.randrange(10)]
amount = random.randrange(100) * 100
print(f"{date.date()},{date.time()},{item},{amount}")
図10 Webスクレイピング対象となるWebページの例
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル商品リスト</title>
</head>
<body>
<h1>商品リスト</h1>
<div class="product" id="product1">
<h2>商品名:スニーカー</h2>
<p>価格:\5000</p>
<p>評価:4.5 星</p>
</div>
<div class="product" id="product2">
<h2>商品名:バックパック</h2>
<p>価格:\8000</p>
<p>評価:4.0 星</p>
</div>
<div class="product" id="product3">
<h2>商品名:水筒</h2>
<p>価格:\1500</p>
<p>評価:4.8 星</p>
</div>
</body>
</html>
図11 Webスクレイピング用のPythonスクリプトの例
import json
from bs4 import BeautifulSoup
# HTMLファイルを開く
with open('sample.html', 'r', encoding='utf-8') as file:
html_content = file.read()
# BeautifulSoupオブジェクトを作成
soup = BeautifulSoup(html_content, 'lxml')
# 商品情報を抽出
products = soup.find_all('div', class_='product')
product_list = []
for product in products:
product_name = product.find('h2').text.replace('商品名:', '').strip()
price = product.find_all('p')[0].text.replace('価格:', '').strip()
rating = product.find_all('p')[1].text.replace('評価:', '').strip()
# 各商品情報を辞書として追加
product_list.append({
'商品名': product_name,
'価格': price,
'評価': rating
})
# JSON形式で結果を出力
json_output = json.dumps(product_list, ensure_ascii=False, indent=4)
print(json_output)