python - 该网站的新版本是否有任何 Instagram Web API?
问题描述
您可以在新版本中进行 dm,我认为有一些简单的 GET 和 POST 请求,而无需访问官方的 instagram API。
我不想使用模拟应用程序或类似应用程序的机器人,因为我可以为此获得禁令。
试图在开发工具(谷歌浏览器)的网络选项卡中查看 XHR,但我以前从未这样做过,对此我有一些麻烦。我看到了请求、标头、响应(消息在哪里),但我无法定义如何使用 python 来做到这一点。
我正在寻求帮助或任何现成的解决方案(对于 python 来说不是必需的,我想我可以将它们移植到 python 或只使用为 api 编写的语言)
编辑:
链接看起来像这样(对于收件箱页面):
https://www.instagram.com/direct_v2/web/inbox/?persistentBadging=true&folder=0&limit=10&thread_message_limit=10
和大量的标题
解决方案
Instagram 发送带有光标的请求,以分块加载直接消息数据。
它的响应有prev_cursor
& oldest_cursor
。
oldest_cursor
value 是您需要为下一个消息块发送的下一个游标值- 当
prev_cursor
value 变为MINCURSOR
时,表示它是最后一个块,表示已在聊天历史记录中启动的消息的第一个块。
我一直在编写一个脚本来取消发送 Instagram DM 上的所有消息。对于删除消息,我需要先获取消息,所以我编写了提供所有消息的函数。
您可以查看存储库https://github.com/pishangujeniya/instagram-helper
对于获取消息,Instagram API 请求没有限制。但是对于删除请求,Instagram 在我们在单个会话中删除 83 条消息后开始发送 429 响应代码,即太多请求。继续删除的解决方案是注销并在一段时间后重新登录。但也存在问题,如果注销和登录次数过多,Instagram 会阻止您的帐户在特定时间段内登录。(在我的情况下,我在开发脚本时被阻止登录 30 分钟)
2020 年 4 月 20 日更新
我更新了请求之间有延迟的脚本,以避免 429 响应,到目前为止它工作得很好。
推荐阅读
- python - how can i sum values in a dictionary of dictionary?
- c++ - Executing CMD commands using C++
- python - 如何通过绝对或相对路径获得正确的路径?
- android - How to Convert String date to double in C++,
- python - How can I spontaneously print a loop in function python
- sql-server - Connecting to Analysis Services from SSMS
- python - strange behaviour of sub function in pandas
- python - 从 Django API 中的 PostgreSQL 过程/函数获取错误输出
- python - 在 djnago 中为 M2M 对象设置字段值
- google-chrome - Google Lighthouse 如何将我的网站明确标记为不是 PWA