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

无需API使用Selenium爬取Instagram如何避免被重定向到登录页

无登录状态下Selenium爬取Instagram避免重定向到登录页的解决方案

方法1:修改浏览器启动配置隐藏自动化特征

  • 启动浏览器时添加无痕模式、禁用自动化标识的启动参数,消除Selenium的默认爬虫特征,避免Instagram直接识别到工具属性:
# Python + ChromeDriver 示例代码
from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
# 启用无痕模式
chrome_options.add_argument("--incognito")
# 移除自动化控制标识
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
# 替换为普通桌面端浏览器的User-Agent,不要使用Selenium默认UA
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36")
# 排除自动化开关、禁用自动化扩展
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option("useAutomationExtension", False)

driver = webdriver.Chrome(options=chrome_options)
# 注入JS隐藏navigator.webdriver标识
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": "Object.defineProperty(navigator, 'webdriver', {get: () => undefined})"
})

方法2:模拟正常用户访问路径

  • 不要启动浏览器后直接访问?__a=1格式的接口链接,先访问Instagram首页停留3-5秒,等待非登录状态下的默认cookie(csrftoken、mid、ig_did等)生成完成后,再跳转目标用户的JSON接口页面,模拟普通用户的访问路径
  • 也可以提前在本地浏览器无痕模式下访问Instagram首页,复制出上述3个非登录状态的cookie值,在Selenium启动后手动注入到浏览器中,再发起目标请求,避免Instagram判定为无上下文的恶意访问

方法3:拦截重定向请求

  • 借助Selenium的CDP(Chrome DevTools Protocol)接口监听网络响应,当检测到返回302重定向到/accounts/login/路径时,直接拦截该重定向操作,保留当前页面的请求上下文
  • 可以将pageLoadStrategy配置为eager,在页面资源未完全加载完成时就获取响应内容,跳过重定向逻辑的执行

注意事项

  • 控制访问频率:非登录状态下Instagram对单IP的请求限制非常严格,每小时请求次数超过20次大概率会触发强制登录验证,建议单IP下请求间隔设置在30秒以上
  • 目前?__a=1接口的非登录访问权限已经被逐步收缩,高频率访问或者部分新用户页面可能会返回403、空内容,遇到这种情况可以直接解析公开的前端页面元素提取内容,无需调用该接口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:36:02