Douban movie Notion同步豆瓣电影至notion数据库

2023-01-27

借助notion提供的api将豆瓣电影中观影记录同步至notion数据库中

实现效果

notion电影数据库

文中所需要的代码

2022年11月13日更新

由于原来的代码上传有风险问题,现在自己的databaseid等需要修改的信息,统一通过新建一个config.py文件然后按照下图添加自己的配置文件

databaseid = ''
headers = {'User_Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0',
               'Cookie': '',
               'Host': 'www.douban.com',
               'Referer': 'https://accounts.douban.com/'}
rss_address = ""
notion_api = "Bearer 你的密钥"

总体思路

先将看到的所有电影导出为csv文件,添加至notion数据库中,然后使用豆瓣api爬取账号下看到的电影动态。

所需工具

Python
	beautifulsoup4==4.11.1
	feedparser==6.0.8
	requests==2.28.1
Tampermonkey

具体步骤

同步看过的电影

在greasyfork中下载豆瓣读书+电影+音乐+游戏+舞台剧导出工具安装至tampermonkey中

安装后在自己的豆瓣首页可以看到导出看过的片按钮 image 点击导出后为csv文件。 打开导出的csv文件在我这边直接导入notion当中会有一些问题。如果有问题可以修改为下面这种格式。 image 随后导入至notion当中,选择csv格式image

获取数据库id以及notion机器人密钥

点开刚刚导入生成的page,获取databaseid,databaseid是固定位数的字母,在notion界面点击share,share to web,就可以看到自己的databaseid。

注意 这种的不是databaseid,你需要点进数据库页面,实在不会可以参考这里(https://www.likecs.com/ask-132446.html) image

这种才是 image

在NotionAPI.py文件中,添加自己的机器人密钥(Bearer后面有空格),在这之前,需要创建自己的notion机器人。 Notion Integrations 官方创建机器人教程

创建后需要将机器人链接至数据库页面 在Add connections就可以看到刚刚创建的机器人名 image

扩充导入的电影元数据

由于导入的数据中缺少导演、封面、标签等数据,所以使用update.py文件更新数据,部分需要修改的代码如下(databaseid、cookie需要更改)

databaseid = '你自己的databaseid'
headers = {'User_Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0',
           'Cookie': '你自己的cookie',
           'Host': 'www.douban.com',
           'Referer': 'https://accounts.douban.com/'}

在NotionAPI.py中也需要修改自己的机器人密钥

import requests

# notion基本参数

headers = {
    "accept": "application/json",
    "Notion-Version": "2022-06-28",
    "content-type": "application/json",
    "authorization": "Bearer 你自己的密钥"
}

随后直接运行update.py就可以扩充封面、导演、标签等数据了。

获取最新观看的电影数据

在自己豆瓣主页的右下角可以看到自己有一个rss订阅链接,复制这个链接 image

在movietrack.py中需要修改下面代码

if __name__ == '__main__':

    # notion相关配置
    # 需要在notionAPI.py中配置notion token
    databaseid = '你的databaseid'
    headers = {'User_Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0',
               'Cookie': '你的cookie',
               'Host': 'www.douban.com',
               'Referer': 'https://accounts.douban.com/'}
    rss_movietracker = feedparser.parse("你的rss订阅链接",
                                        request_headers=headers)

最后直接运行,python会爬取你最近看过的电影,并与数据库中已经存在的电影进行匹配,更新数据库中不存在的电影。 image