用新开放的 notion api 结合 python 爬虫搞个羊毛线报页面

notion api

前几天notion开放了api,notion开发者文档可以了解。

python操作notion

  1. 创建一个 Notion 机器人,输入名字,即可快速创建。

  2. 获取Token,点击 show,然后复制备用。
    在这里插入图片描述

  3. 在需要使用API的页面中,点击 Share 并选择 Invite ,将机器人邀请进去,让其用于编辑的权限。
    在这里插入图片描述
    在这里插入图片描述

  4. 获取数据表的 database_id,点击数据表右上方的 ... 选择 Copylink
    在这里插入图片描述
    连接如下方:https://www.notion.so/xinhuoip/9bcf00dce55c42799f3b177dc325aa18?v=217bbe82893e4e4aa228a19f3f2dc888 ,其中 9bcf00dc-e55c-4279-9f3b-177dc325aa18 即为database_id

  5. 使用python的requests库get方法来读取notion页面数据,示例代码如下:

    import requests
    token = '这个是你创建机器人时获取到的见第二步'
    r = requests.request(
            "GET",
            "https://api.notion.com/v1/pages/5b35b115ddc442e080f1b1b27e5b0ae0",#字符串为页面id
            headers={"Authorization": "Bearer " + token, "Notion-Version": "2021-05-13"},
        )
    print(r.txet)
    

    以上代码输出结果如下:
    在这里插入图片描述

  6. 通过python的requests库中的post方法来操作notion添加数据,示例代码如下:

    import requests
    token = '第二步中获取到的token值'
    def post(url,title,content):
        requests.request("POST",
        "https://api.notion.com/v1/pages",
        json={
            "parent": {"type": "database_id", "database_id": "9bcf00dc-e55c-4279-9f3b-177dc325aa18"},
            "properties": {
                "来源": {"url": url},
                "标题": {"title": [{"type": "text", "text": {"content": title}}]},
                "描述": {"rich_text": [{"type": "text", "text": {"content": content}}]},
            },
            "children": [
                {
                "object": "block",
                "type": "paragraph",
                "paragraph": {
                    "text": [{ "type": "text", "text": { "content": content } }]
                }
                }
            ]
        },
        headers={"Authorization": "Bearer " + token, "Notion-Version": "2021-05-13"},
        )
        print(title + '---' +url) 
    
    post('https://www.xinhuoip.com','薪火IP全国动态pptp 静态IP 单进程单IP 单窗口单IP','工作室客户量大优惠、支持游戏、试玩、短视频等各类项目,客服QQ:1167064')
    

    代码运行效果如下:
    在这里插入图片描述
    数据添加成功,代码中children中的部分为在此条数据的page中添加一个block,显示效果如下:
    在这里插入图片描述

  7. 结合以前的线报类代码,可直接将采集的数据直接写入到notion。

原文地址:全国动态pptp