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

使用Selenium Python提取Instagram关注数时遇TimeoutException求助

解决Instagram关注数获取超时问题

针对你遇到的TimeoutException,即便XPATH在截图中存在,可从以下几个方向排查解决:

  • 替换绝对XPATH为相对路径
    绝对XPATH依赖页面完整层级,只要页面结构有微小变动就会失效。换成基于元素属性的相对路径更稳定,比如直接定位带title属性的关注数span(Instagram关注数的span标签会携带title属性存储具体数值):

    followers = wait.until(EC.visibility_of_element_located((By.XPATH, "//section/main/div/ul/li[2]//span[@title]")))
    

    或者通过按钮的文本特征定位(根据页面语言调整,比如中文页面用"关注者"):

    followers = wait.until(EC.visibility_of_element_located((By.XPATH, "//li[.//button[contains(text(), '关注者')]]//span[@title]")))
    
  • 切换等待条件为可见性判断
    presence_of_element_located仅判断元素存在于DOM中,但元素可能还未渲染可见。换成visibility_of_element_located能确保元素已显示在页面上:

    from selenium.webdriver.support import expected_conditions as EC
    
    wait = WebDriverWait(driver, 30)    
    followers = wait.until(EC.visibility_of_element_located((By.XPATH, "//section/main/div/ul/li[2]//span[@title]")))
    print(followers.get_attribute("title"))
    
  • 检查是否需要滚动到元素区域
    部分情况下,关注数元素可能在页面下方,需要滚动后才会加载。可以先滚动到目标元素的父节点位置:

    parent_element = wait.until(EC.presence_of_element_located((By.XPATH, "//section/main/div/ul/li[2]")))
    driver.execute_script("arguments[0].scrollIntoView();", parent_element)
    followers = wait.until(EC.visibility_of_element_located((By.XPATH, ".//span[@title]", parent_element)))
    print(followers.get_attribute("title"))
    
  • 排查反爬限制
    Instagram对自动化工具检测严格,若未登录或被判定为机器人,页面加载会异常缓慢甚至阻塞。确保已完成登录流程,必要时可添加随机延迟,或检查浏览器控制台是否有加载错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 13:48:22