You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从给定字符生成无重复3位字符串并检测Instagram用户名可用性

代码存在的问题
  • 字符串生成逻辑错误:random.choices() 默认每次仅抽取1个字符,且循环内变量名混淆(usr始终为空字符串),最终生成的用户名永远是1位长度,达不到3位要求
  • 不满足无重复字符要求:random.choices() 是有放回抽样,可能生成重复字符的结果,且你定义的字符集漏了字母u
  • 可用性判断逻辑错误:Instagram 对不存在的用户名返回404状态码而非400,直接裸请求极易触发反爬拦截,返回错误状态码
  • 存在拼写错误:提示文本里的Avilable应为Available
修正后的可运行代码
import requests
import random
import time
from colorama import Fore

# 补全缺失的u,整理完整可用字符集
CHAR_SET = "abcdefghijklmnopqrstuvwxyz1234567890"
# 加常规请求头避免被直接拦截
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

while True:
    # 无放回抽取3个不重复字符,直接拼接成3位用户名
    user = "".join(random.sample(CHAR_SET, 3))
    try:
        response = requests.get(f"https://www.instagram.com/{user}/", headers=HEADERS, timeout=10)
        if response.status_code == 200:
            print(Fore.RED + "Taken: " + Fore.BLUE + user)
        elif response.status_code == 404:
            print(Fore.GREEN + "Available User: " + Fore.BLUE + user)
        else:
            # 遇到反爬、限流等其他状态码时提示
            print(Fore.YELLOW + f"Request failed for {user}, status code: {response.status_code}")
    except Exception as e:
        print(Fore.YELLOW + f"Request error for {user}: {str(e)}")
    # 加随机延时降低被封概率
    time.sleep(random.uniform(1, 3))
补充说明
  • 高频请求依然可能触发Instagram的限流/IP封禁,若出现大量非200/404的状态码,建议暂停请求一段时间或更换IP
  • 上述检测逻辑仅作技术参考,批量请求请遵守对应平台的服务条款

内容的提问来源于stack exchange,提问作者user19126561

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 19:18:45