用新开放的 notion api 结合 python 爬虫搞个羊毛线报页面
notion api
前几天notion开放了api,notion开发者文档可以了解。
python操作notion
-
创建一个 Notion 机器人,输入名字,即可快速创建。
-
获取Token,点击 show,然后复制备用。
-
在需要使用API的页面中,点击 Share 并选择 Invite ,将机器人邀请进去,让其用于编辑的权限。
-
获取数据表的
database_id
,点击数据表右上方的...
选择Copylink
,
连接如下方:https://www.notion.so/xinhuoip/9bcf00dce55c42799f3b177dc325aa18?v=217bbe82893e4e4aa228a19f3f2dc888
,其中9bcf00dc-e55c-4279-9f3b-177dc325aa18
即为database_id
。 -
使用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)
以上代码输出结果如下:
-
通过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,显示效果如下:
-
结合以前的线报类代码,可直接将采集的数据直接写入到notion。
原文地址:全国动态pptp