banner
烤肉肉

烤肉肉

2024#01 | 豆瓣ソースから三煨書屋まで

封面は去年 ue5 で作った小さなシーンで、ブロックを並べるのは楽しかったです。

以前ブログを書いたことがありますが、一年も続けたことはありませんでした。今回は意外にも 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を取得してください。上記のリンクからTest Access 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 つのウェブサイトの同時更新方法を見てみる必要があります(やはり豆瓣を使わないわけではありません)。
  • 「ゲーム」セクションは現在空白です。
  • コードを書くのは楽しいので、他のことも書き続けたいです。

面白いもの#

image

モンスターハンター・ワールド#

太刀はかっこいいですが、猫が簡単に倒れてしまうので、1 週間も詰まっています。長い間育ててきたネコネコ子を作った太刀はあまり使いやすくありません...。別の太刀に変える準備をしていますが、古龍を捕まえられないのは本当に苦しいです。ネットでは、見た目が良い服はすべてアイスボーンにあると言われていますが、私は何時間もかけて鋼龍を倒しました。鋼龍を倒した後、先生は見切りを覚えました(前の拜年剣法は非常に使いやすかったのに)。今では見切り大回転登龍受け猫車一条龍、猫は明らかに白い。

また、青い星でサボテンを捕まえまくっていると、隣のイオゼアのサボテンはみんなララ肥が演じているようです。四捨五入して、私は一箱分のララ肥を捕まえました。


今週は特に記録すべきことはありませんでした。空気も悪く、気分も悪いです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。