封面は去年 ue5 で作った小さなシーンで、ブロックを並べるのは楽しかったです。
以前ブログを書いたことがありますが、1 年間続けたことはありませんでした。今回は意外にも 2024 のフォルダを作成しました。これからも続けられるといいです。
新年の最初の記事ですが、今週はあまり良くありませんでした。最近の運勢は私の側にはないようです。年越しの夜、YouTube で台湾のカウントダウンを見ていたら、陳綺貞が 30 分以上歌っていました。台湾の人々はまだ食べているようですが、中国南部のネットユーザーは嫉妬しています。
豆瓣から Notion へ#
2020 年の自宅隔離中、仕事もしていなかったので、たくさんの本を読みました。その時に notion を使って読書のデータベースを作りました。個人的には達成感がありましたが、仕事を始めるとあまり維持できませんでした。最近他のブログを見ていると、多くの人が自分のデータベースに notion を使用していることに気付きました。そこで、当時作ったデータベースを思い出しました。ちょうど「書影遊」のデータベースが欲しかったので、作ってみることにしました。
当時は手作業で一つずつ入力していましたが、比較的完全な「書影遊」を作るためには、私のデータ量はかなり大きいはずです(実際はそんなに大きくありません)。インターネットで検索してみましたが、「豆瓣からの脱出」の攻略法はいくつかあります。たとえば、多くのブロガーが推奨する豆瓣読書 + 映画 + 音楽 + ゲーム + 舞台演劇のエクスポートツールは、私が開いたら 404 の状態でした(おそらく警告されたためです)。NeoDB が推奨する豆伴 (豆坟)はまあまあ使いやすいですが、ブロガーの中には豆坟がアカウントを封鎖する可能性があると言っている人もいますが、問題は大きくありません(人生は賭けです)。
実際には、いくつかの障害を乗り越えました。最初のアイデアは、豆瓣からエクスポートした.xlsx
データを csv 形式に変換し、読了済み
、読みたい
、視聴済み
、視聴したい
などの機能を実現するために、豆伴からエクスポートしたファイルを手動で編集することでした。そして、エクスポートした csv ファイルを直接 notion にインポートするだけで、ほとんどの要求を満たすことができます。
しかし、私は表紙が欲しいのです!エクスポートしたファイルには豆瓣のリンクが含まれているため、最初は Python を使用して豆瓣の画像をスクレイピングしようとしました。最初はうまくいっていましたが、100 枚以上スクレイピングしたところでアンチスクレイピング機能が作動しました。アンチスクレイピングについて研究するのは面倒だったので、やめました。
重要なポイントですが、ここで豆瓣の代替プラットフォームneodbを称賛したいと思います。先ほどエクスポートしたときにも言いましたが、エクスポートした後、ここにインポートすることができます。豆瓣とは異なり、これはオープンなプラットフォームで、API を呼び出すことができます!
豆瓣のデータをインポートした後、NeoDB のバックアップも作成しました。彼らの開発者コンソールを参考にして、すべての書影をスクレイピングしました。
import requests
import json
import pandas as pd
import time
df = pd.read_csv("movie.csv")
df['NeoDBリンク']=df['NeoDBリンク'].astype(str)
header={'Authorization':'Bearer xhUlIQDgfb11mokXBsZAmjvwO5r2Qm',}#ここでTokenを取得してください。なぜか私は彼らが書いたとおりにアプリを登録してもうまくいかなかったので、テストアクセストークンを取得しました。とにかく数千のデータをスクレイピングするのには十分です。
for x,i in enumerate(df['NeoDBリンク']):
url = i
content = url.split('https://neodb.social/')[1]
print(content)
response = requests.get('https://neodb.social/api/'+content,headers=header)
data=json.loads(response.text)
df.loc[df['NeoDBリンク'] == i, '表紙'] = data['cover_image_url']
df.loc[df['NeoDBリンク'] == i, 'タイプ'] = data['type']
df.loc[df['NeoDBリンク'] == i, '概要'] = data['brief']
actors = ','.join(data['actor'])
df.loc[df['NeoDBリンク'] == i, '出演者'] = actors
genre = ','.join(data['genre'])
df.loc[df['NeoDBリンク'] == i, 'ジャンル'] = genre
df.loc[df['NeoDBリンク'] == i, '年'] = data['year']
area=','.join(data['area'])
df.loc[df['NeoDBリンク'] == i, '地域'] = area
df.loc[df['NeoDBリンク'] == i, 'NeoDB評価'] = data['rating']
print(f'処理中:{x + 1} / {len(df)}')
time.sleep(0.5)
df.to_csv('NeoDBバックアップ.csv',index=False)
私はプログラマではないので、コードがうまく書かれているかどうかはわかりませんが、動作するので問題ありません。エクスポートした csv を notion にインポートし、プロパティを変更すれば完璧です。
notion はデータベースとして使用できると言われており、その可能性を考えると、とてもクールです。
TO DO#
- 現在、構築は完了しましたが、次はウェブサイトでのマークアップ、3 つのウェブサイトの同時更新方法を見つけることです(やはり豆瓣を使わないわけではありません)。
- 「遊」セクションはまだ空です。
- コードを書くのは楽しいので、他のことも書き続けたいです。
面白いもの#
モンスターハンターワールド#
太刀はかっこいいですが、猫が簡単に倒されてしまいます。一週間も行き詰まっています。長い間育ててきたミーミーコが作った太刀はあまり使いやすくありません... 別の太刀に変える準備をしています。古龍を捕まえられないのは本当に苦しいです。オンラインでは、見た目が良い服はすべてアイスボーンにありますが、スティールドラゴンを何時間もかけて倒した後、見切りを覚えました(前の剣法は非常に使いやすかったのに)。今は見切り大回転登龍受け猫車一条龍、猫は明らかに理解しています。
そして、青い星でサボテンを捕まえまくっていますが、隣のエオルゼアのサボテンはララフェルが演じています。四捨五入して、私は一部屋分のララフェルを捕まえました。
今週は特に記録すべきことはありませんでした。空気も悪く、気分も悪いです。