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

如何使用Selenium和Python避免每次访问Instagram都需登录

解决Selenium ChromeDriver每次需重新登录Instagram的问题

问题出在ChromeDriver默认会用一个全新的临时用户配置,不会复用你本地Chrome的登录会话。给你两个靠谱的解决办法:

办法1:加载本地Chrome的用户配置文件

这是最稳定的方式,直接让Driver用你平时用的Chrome配置,自然就能保留登录状态。

  1. 先找到你的Chrome用户数据目录

    • Windows:C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data
    • macOS:~/Library/Application Support/Google/Chrome/
    • Linux:~/.config/google-chrome/
  2. 修改代码添加配置
    在Options里加上加载用户数据的参数,替换成你自己的路径就行:

    from selenium import webdriver
    import time
    from selenium.webdriver.common.by import By
    import kullaniciBilgileri as kb
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_experimental_option('useAutomationExtension', False)
    # 替换成你自己的Chrome用户数据路径
    options.add_argument(r"user-data-dir=C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data")
    # 指定用默认配置文件(如果有多个账号配置,这里可以改对应的文件夹名)
    options.add_argument(r"profile-directory=Default")
    
    # 注意!你原来的链接写错了,要改成正确的instagram官网
    link = "https://www.instagram.com"
    browser = webdriver.Chrome(options=options, executable_path="./chromedriver")
    browser.get(url=link)
    time.sleep(5)
    
    # 加个判断,已经登录就跳过输入账号密码
    try:
        # 检查主页元素,比如搜索框,存在就说明已登录
        browser.find_element(By.CSS_SELECTOR, 'input[placeholder="搜索"]')
        print("已自动保持登录状态")
    except:
        # 没登录才执行登录步骤
        username = browser.find_element(by=By.NAME, value="username")
        password = browser.find_element(by=By.NAME, value="password")
        username.send_keys(kb.userName)
        password.send_keys(kb.password)
        # 简化了登录按钮的选择器,原来的没必要选到div层
        loginBtn = browser.find_element(by=By.CSS_SELECTOR, value="#loginForm button")
        loginBtn.click()
    

注意点

  • 运行脚本前必须关掉所有Chrome窗口,不然配置文件被占用会报错。
  • 确保Chrome浏览器和ChromeDriver的版本完全一致,版本不兼容也可能导致会话存不住。

办法2:Cookie持久化(备选方案)

如果不想用本地配置,也可以第一次登录后把Cookie存下来,下次直接加载:

  1. 第一次登录成功后保存Cookie:

    # 登录成功后执行这段代码
    import json
    with open("instagram_cookies.json", "w") as f:
        json.dump(browser.get_cookies(), f)
    
  2. 后续运行脚本时加载Cookie:

    browser.get("https://www.instagram.com")
    import json
    with open("instagram_cookies.json", "r") as f:
        cookies = json.load(f)
        for cookie in cookies:
            browser.add_cookie(cookie)
    # 刷新页面就会自动登录
    browser.refresh()
    

不过这种方法可能因为Cookie过期失效,不如加载用户配置稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:24:10