Instabot无法向同一用户发送多条消息问题求助
Instabot循环发送消息卡住问题排查
我在搭建Instabot,想让机器人从数组里选取消息发送给同一个用户,但测试时仅第一条消息能成功发送,之后机器人就会卡住。
代码示例
messages = ['test1', 'test2', 'test3'] bot = Bot() bot.login(username='test1', password='test1') for message in messages: bot.send_message(message, ['test1'])
我期望脚本能依次向同一用户发送test1、test2、test3这三条消息。有没有人遇到过相同问题?会不会是线程问题?
日志信息
2022-10-18 23:51:13,875 - instabot version: 0.117.0 (api) - DEBUG - GET to endpoint: multiple_accounts/get_account_family/ returned response: <Response [200]> 2022-10-18 23:51:14,353 - instabot version: 0.117.0 (api) - DEBUG - POST to endpoint: qe/sync/ returned response: <Response [200]> 2022-10-18 23:51:14,592 - instabot version: 0.117.0 (api) - DEBUG - GET to endpoint: igtv/browse_feed/?prefetch=1 returned response: <Response [404]> 2022-10-18 23:51:14,592 - instabot version: 0.117.0 (api) - DEBUG - Responsecode indicates error; response content: ... 2022-10-18 23:51:14,592 - instabot version: 0.117.0 (api) - ERROR - Error checking for `feedback_required`, response text is not JSON 2022-10-18 23:51:14,592 - instabot version: 0.117.0 (api) - INFO - Full Response: <Response [404]> 2022-10-18 23:51:14,592 - instabot version: 0.117.0 (api) - INFO - Response Text: <!DOCTYPE html>
问题分析与解决办法
从日志来看,发送第一条消息后,机器人请求igtv/browse_feed/端点返回404错误,导致后续流程中断。这不是线程问题,属于instabot库内部的API请求异常。
可以尝试以下几种解决方案:
- 添加操作延迟:Instagram对频繁操作有风控限制,在每次发送消息后增加几秒延迟,避免触发限制。修改后的代码如下:
import time messages = ['test1', 'test2', 'test3'] bot = Bot() bot.login(username='test1', password='test1') for message in messages: bot.send_message(message, ['test1']) time.sleep(5) # 每次发送后延迟5秒,可根据情况调整时长
- 更新instabot版本:你当前使用的0.117.0版本较旧,新版本可能修复了API端点适配问题,执行命令
pip install --upgrade instabot完成更新。 - 添加异常捕获:在循环中加入异常处理逻辑,避免单次请求失败导致整个脚本卡住:
messages = ['test1', 'test2', 'test3'] bot = Bot() bot.login(username='test1', password='test1') for message in messages: try: bot.send_message(message, ['test1']) except Exception as e: print(f"发送消息失败: {str(e)}") continue
内容的提问来源于stack exchange,提问作者antpngl92
相关产品推荐
相关产品推荐

