使用Python Requests创建Instagram账号失败,请求返回account_created:false
解决Instagram账号创建失败的思路
返回结果{"account_created":false,"dryrun_passed":true,...}中,dryrun_passed:true说明请求的基础格式是合法的,但账号创建未完成,大概率是缺少必要参数、信息不符合规则或触发反机制,以下是具体排查和解决方向:
1. 补充必填请求参数
Instagram的账号创建接口需要更多字段,你的login_data目前缺失关键参数,建议补充以下内容:
guid:随机生成的UUID,用于标识会话device_id:基于GUID生成的设备标识opt_into_one_tap:默认设为falsetos_version:协议版本,通常为rowseamless_login_enabled:默认设为false
示例代码修改:
import uuid # 生成会话和设备标识 guid = str(uuid.uuid4()) device_id = f"android-{guid.replace('-', '')}" login_data = { 'username': username, 'enc_password': enc_password, 'email': email_to_use, 'first_name': first_name, 'opt_into_one_tap': 'false', 'tos_version': 'row', 'guid': guid, 'device_id': device_id, 'seamless_login_enabled': 'false' }
2. 完善请求头信息
除现有头部外,需补充两个关键请求头,确保请求符合AJAX表单提交规范:
session.headers.update({ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36', 'Referer': 'https://www.instagram.com', 'X-CSRFToken': csrftoken, 'X-Requested-With': 'XMLHttpRequest', 'Content-Type': 'application/x-www-form-urlencoded' })
3. 校验账号信息合法性
确保所有输入字段符合Instagram规则:
- username:非空,长度3-30,仅包含字母、数字、下划线和点,不能全为特殊字符
- password:非空,至少8位,包含字母+数字组合
- email_to_use:有效邮箱格式,未被注册过
- first_name:非空字符串
4. 适配反机制
- Cookie同步:不要只提取
csrftoken,保留访问主页或注册页后返回的所有Cookie(如mid) - 请求前置步骤:先访问注册页
https://www.instagram.com/accounts/emailsignup/,再获取CSRF Token,而非直接访问主页 - 验证流程处理:若后续返回
challenge_required字段,说明需要处理验证码(邮件/短信/人机验证),需补充对应验证逻辑
5. 对比浏览器请求调试
手动在浏览器完成一次注册,通过开发者工具(F12)查看实际发送的请求:
- 对比请求参数,找出代码中遗漏的字段
- 核对请求头的所有内容,补充缺失项
- 检查Cookie的完整列表,确保会话中包含所有必要Cookie
内容的提问来源于stack exchange,提问作者Kuro
相关产品推荐
相关产品推荐

