使用curl调用Newsblur API登录报错,如何导出feed内所有文章列表
问题原因
你使用的--user/-u参数是HTTP Basic Auth的传参方式,但Newsblur的登录接口不支持该认证逻辑,它要求将用户名、密码作为POST表单字段提交,因此接口无法读取到你传入的用户名,才会返回「请输入用户名」的报错。另外你最初用的HTTP协议的接口地址也可能存在重定向丢失参数的问题。
解决步骤
1. 正确发起登录请求
使用以下curl命令登录,同时将会话cookie保存到本地文件,供后续拉取feed数据使用:
curl -c newsblur_cookies.txt -X POST -d "username=替换为你的实际用户名" -d "password=替换为你的实际密码" https://www.newsblur.com/api/login
如果请求成功,返回结果中会出现"authenticated": true的标识。如果你的密码包含特殊字符,用分开传-d参数的方式可以避免手动转义的问题。
2. 获取所有订阅的feed ID
登录成功后执行以下命令,拉取你所有订阅的feed列表,从中找到对应feed的ID值:
curl -b newsblur_cookies.txt https://www.newsblur.com/api/reader/feeds
3. 拉取指定feed的全量条目
将下面命令中的[FEED_ID]替换为你要导出的feed的实际ID,调整page参数翻页拉取所有条目,直到返回结果中的stories列表为空即可停止:
curl -b newsblur_cookies.txt "https://www.newsblur.com/api/reader/feed/[FEED_ID]?page=1&read_filter=all"
注意事项
- Newsblur API有访问频率限制,不要短时间内发起大量请求,避免被临时封禁
- 导出的条目数据可以自行编写脚本解析提取需要的标题、链接、发布时间等信息
内容的提问来源于stack exchange,提问作者NylaTheWolf
相关产品推荐
相关产品推荐

