md批量导入到notion其实网上已经有不少办法和解决思路了,这里讲一下上传图片过多出现的api请求问题的解决办法。
requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url:https://wuw.notion.so/api/v3/submitTransaction
很明显网页端抓取流量可以知道图片是传到amazonaws上的,api调用过程是根据ip访问次数来进行限制的,那很简单的解决思路就是秒级切换的代理池。
pip install md2notion
这里我用这个来实现md导入,虽然还有enex2notion等,但是本质都一样。
python -m md2notion [token_v2] [page_url] [md_path_url](支持*通配符)
然后我采用clash自带的负载均衡来实现。
proxy-groups:
-
name: "负载均衡"
type: load-balance
proxies:
- 🔰国外流量
url: '<http://www.gstatic.com/generate_204>'
interval: 5
strategy: round-robin
# strategy: consistent-hashing # or round-robin
这里可以修改自己的clash配置中的yaml,添加对应的代理组,proxies要改为你自己的代理,里面节点越多越好,然后interval表示切换ip的时间戳,这里的要和后面代码修改中的sleep时间对应起来。
接下来到python目录下python\Lib\site-packages\notion中找到client.py。
将代码修改如下,这样虽然慢,但能保证传图片时可以用ip池绕过策略了。
while True:
try:
self.post("submitTransaction", data)
break
except Exception as e:
print(str(e))
import time
time.sleep(5)#这里的5和interval对应起来
特别的,如果你遇到了requests.exceptions.HTTPError: Invalid input.
检查你的token,如果没有问题那么说明你传的区块过大了。
去python\Lib\site-packages\notion中找到store.py定位280行,修改为100即可。