はじめに
通勤時間が2時間半と長いので、出社する日は映画を2−3本くらい見ています。
せっかくたくさん映画を見ているので、Filmarksで記録するようにしました。
ただ、昔使っていたWATCHAのように映画のレコメンドを受けるには月500円ほど課金してプレミアム会員になる必要があります…
ChatGPTに今までのレビュー結果を読ませてレコメンドさせればよいかと思いましたが、Filmarksにはエクスポート機能がありません。
そのため、自分のレビュー記録をスクレイピングして、レビュー記録をエクスポートするスクリプトを(ChatGPTが)作成しました。
当時はChatGPTのモデルが4oだったので、出力されたコードもバグが多く、修正はちょっと苦労しましたね…
同じことで困っている人はご活用ください。
スクレイピングのコード
Step0 動作環境
pythonが入っていれば動くはずです。
自分はMacなのでデフォで入っていますが、Win派の方はなんかいい感じにPythonをインストールしてください。
Step1 必要なライブラリのインストール
pip3 install requests beautifulsoup4 pandas
でスクリプトの依存ライブラリをインストールしてください。
ぱそこんぜんぜんわからないので、各ライブラリがどのような働きをしているかは知りません。
Step2 コードを書く
以下コードを拡張子pyで保存します。ユーザIDは自分のものに変えてください。このまま実行すると私のレビューが取得されます。
import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
USERNAME = "Hrvtuirvw" # ← 自分のユーザーIDに変更
BASE_URL = f"https://filmarks.com/users/{USERNAME}"
HEADERS = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15"
}
def scrape_all_marks():
results = []
page = 1
while True:
url = f"{BASE_URL}?page={page}"
print(f"\n📄 Fetching page {page}: {url}")
res = requests.get(url, headers=HEADERS)
soup = BeautifulSoup(res.text, "html.parser")
cards = soup.select("div.c-content-card")
print(f"🔍 Cards found on page {page}: {len(cards)}")
if not cards:
print("🛑 No more cards found. Stopping.")
break
for i, card in enumerate(cards):
title_tag = card.select_one("h3.c-content-card__title a")
rating_tag = card.select_one("div.c-rating__score")
comment_tag = card.select_one("p.c-content-card__review span")
title = title_tag.text.strip() if title_tag else f"NO TITLE {i}"
movie_href = title_tag.get("href") if title_tag else ""
rating = rating_tag.text.strip() if rating_tag else ""
comment = comment_tag.text.strip() if comment_tag else "(no comment)"
results.append({
"Title": title,
"Rating": rating,
"Comment": comment,
"MoviePageURL": f"https://filmarks.com{movie_href}" if movie_href else "",
})
page += 1
time.sleep(1) # DDosと思われて、IPがBANされないようにちょっと待つ。気にしない人は自己責任で消してください。
return results
if __name__ == "__main__":
reviews = scrape_all_marks()
df = pd.DataFrame(reviews)
import csv
df.to_csv("filmarks_review_all.csv", index=False, encoding="utf-8-sig")
print("\n✅ 完了!filmarks_review_all.csv に保存済み")
Step3 実行
保存したpythonスクリプトがあるディレクトリに移動し、実行するとレビューをスクレイピングしてfilmarks_review_all.csvというファイルに出力されます。やったね。
↓ 中身はこんな感じです

最後に
結局ChatGPTにレコメンドさせても微妙だったので、大人しくWATCHAを使うかFilmarksに課金するのが良さそうです。
https://chatgpt.com/share/68aff7c2-7358-800a-b922-0c9b91aca3b8



コメントを残す