Instaloader在VPS调用Instagram API返回401未授权,但本地Ubuntu电脑可正常运行的问题求助
Instaloader在VPS调用Instagram API返回401未授权,但本地Ubuntu电脑可正常运行的问题求助
我写了一个基于Instaloader 4.14版本的Python脚本,用来抓取自己Ins动态里的图片和描述,之后做字符串解析和后续处理。在我的Ubuntu笔记本上运行完全没问题,但部署到VPS上(本来打算放在这用定时任务每天跑两次)就出问题了。
运行脚本时会抛出如下错误:
instaloader.exceptions.ConnectionException: JSON Query to api/v1/users/web_profile_info/?username=myinstahandle: 401 Unauthorized - "fail" status, message "Please wait a few minutes before you try again." when accessing https://i.instagram.com/api/v1/users/web_profile_info/?username=myinstahandle
我已经尝试过两种登录方式:用login方法直接登录,以及用load_session_from_file加载本地保存的会话,但这两种方式在VPS上都会返回401错误,在本地电脑上却完全正常。
我还特意用curl -v直接请求这个API地址做测试:VPS上返回401,而本地Ubuntu电脑返回400,错误信息是{"message":"useragent mismatch","status":"fail"}%,另外本地请求的响应头里x-ig-origin-region字段值是odn,VPS上的则是ldc。
现在我有点摸不着头绪,不知道接下来该尝试什么了……连curl请求都能返回401,说明问题可能和Instaloader本身无关。我看到相关讨论里提到可能只能通过代理解决,想问问有没有纯代码层面的解决方案?还是说必须伪装地理位置才行?
备注:内容来源于stack exchange,提问作者jasonbstanding
相关产品推荐
相关产品推荐

