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

Selenium爬取Instagram时未注册账号持续显示“Something went wrong...”

修复建议
  • 绕过Selenium自动化检测:Instagram近期大概率强化了反爬机制,识别出你使用了WebDriver。可以通过以下方式伪装:

    • 添加禁用自动化检测的浏览器参数(以Chrome为例):
      from selenium import webdriver
      options = webdriver.ChromeOptions()
      # 禁用自动化控制提示
      options.add_argument('--disable-blink-features=AutomationControlled')
      options.add_experimental_option("excludeSwitches", ["enable-automation"])
      options.add_experimental_option('useAutomationExtension', False)
      driver = webdriver.Chrome(options=options)
      
    • 手动篡改navigator.webdriver属性,避免被页面脚本识别:
      driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
      
  • 更新页面元素定位逻辑:既然页面HTML和XPath已变更,必须重新适配:

    • 打开浏览器开发者工具,针对需要爬取的内容,重新生成稳定的定位器——优先用带固定特征的CSS选择器(比如包含静态class的),避免依赖动态生成的ID或绝对路径XPath。
    • 示例:用//div[contains(@class, 'x1n2onr6') and text()='Posts']替代旧的绝对XPath。
  • 模拟真实用户行为与环境:

    • 配置真实的User-Agent:从你正常访问Instagram的浏览器中复制UA字符串,添加到ChromeOptions:
      options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36')
      
    • 加载本地浏览器配置文件:直接复用你正常访问的Chrome用户数据,让爬虫环境和真实浏览器一致:
      options.add_argument(r"user-data-dir=C:\Users\你的用户名\AppData\Local\Google\Chrome\User Data")
      options.add_argument(r"profile-directory=Default")
      
    • 添加随机延迟:在页面加载、操作之间加入1-3秒的随机等待,模拟人类浏览节奏:
      import time
      import random
      time.sleep(random.uniform(1, 3))
      
  • 排查IP封禁风险:如果你的爬虫请求频率过高,可能被Instagram限制IP:

    • 切换高质量住宅代理IP,避免使用数据中心IP(这类IP容易被标记)。
    • 降低请求频率,比如每爬取1个账号后等待5-10秒,避免短时间内大量请求。
  • 考虑官方API替代方案:如果需求是获取公开账号的合规数据,Instagram Graph API是更稳定的选择——虽然需要申请开发者权限,但不会因为页面结构变更而失效,也能避免反爬限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:18:32