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

如何用Selenium定位Instagram的粉丝标签元素?

解决Instagram粉丝链接定位与点击问题

先直接点出你代码里的几个明显问题:

  • 循环里用了next2变量,但你定义的是this_is_what_I_want,变量名不匹配会直接报错
  • get_attribute("_ac2a _ac2b")用法完全错误:get_attribute()是用来获取元素的属性值(比如href、class),不是传类名,而且就算获取到值也不能直接链式调用.click()

下面给你几个可行的解决思路:

1. 精准定位粉丝链接

Instagram的粉丝页面链接格式固定为https://www.instagram.com/[用户名]/followers/,可以直接通过XPATH定位包含该href特征的a标签,这种方式稳定性更高:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

def find_follower(self):
    # 改用显式等待替代固定sleep,适配不同加载速度
    self.driver.get(f"https://www.instagram.com/{SIMILAR_ACCOUNT}/")
    WebDriverWait(self.driver, 10).until(
        EC.presence_of_element_located((By.XPATH, "//a[contains(@href, '/followers/')]"))
    )
    
    # 定位并点击粉丝链接
    follower_link = WebDriverWait(self.driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, "//a[contains(@href, '/followers/')]"))
    )
    follower_link.click()

2. 通过文本辅助定位(备选)

如果href特征失效,也可以通过粉丝数旁的文本定位(注意适配语言,比如中文是"粉丝",英文是"followers"):

# 中文环境下定位示例
follower_link = WebDriverWait(self.driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, "//span[text()='粉丝']/parent::a"))
)
follower_link.click()

3. 修复你原有代码的逻辑错误

如果坚持用遍历a标签的方式,修正后的代码如下:

def find_follower(self):
    time.sleep(2)
    self.driver.get(f"https://www.instagram.com/{SIMILAR_ACCOUNT}")
    time.sleep(2)                                       
    path = self.driver.find_element(by=By.CLASS_NAME, value="_aa_c")
    print(path.text)

    # 修正循环变量名
    this_is_what_I_want = self.driver.find_elements(by=By.XPATH, value="//a[@href]") 
    for item in this_is_what_I_want:
        try:
            span_element = item.find_element(by=By.TAG_NAME, value="span")
            # 检查span元素的class是否包含目标类名
            class_attr = span_element.get_attribute("class")
            if "_ac2a" in class_attr and "_ac2b" in class_attr:
                item.click()
                break  # 找到目标链接后退出循环
        except:
            continue

注意:Instagram的页面元素类名是动态生成的,可能随时更新,优先用href或文本定位的方式更稳定。另外,频繁自动化操作可能触发反作弊机制,建议添加合理的等待间隔,避免账号受限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:50:17