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

如何使用Python Selenium点击Instagram账号following按钮获取关注列表

解决方案

现有代码问题排查

  • 定位规则错误:你给出的目标元素是<a>标签而非<button>,原有XPATH规则//button[contains(text(),'following')]匹配不到目标元素
  • 元素获取方法误用:find_elements_by_xpath返回的是元素列表,无法直接调用click()方法,应该用find_element获取单个元素
  • 缺少显式等待:直接查找元素可能因为页面未加载完成抛出找不到元素的异常

修正后的实现代码

原有登录、跳过弹窗、搜索进入目标账号主页的逻辑可正常保留,以下是修正后的点击following、获取完整关注列表的逻辑:

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

# 点击following板块,优先用href属性定位,稳定性更高
following = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.XPATH, '//a[contains(@href, "/following/")]'))
)
following.click()

# 等待关注列表模态框加载完成
follow_list_modal = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//div[@role="dialog"]//ul'))
)

# 滚动加载全部关注列表,解决动态加载问题
last_height = driver.execute_script("return arguments[0].scrollHeight", follow_list_modal)
while True:
    driver.execute_script("arguments[0].scrollTop = arguments[0].scrollHeight", follow_list_modal)
    time.sleep(2) # 可根据网络情况调整等待时长
    new_height = driver.execute_script("return arguments[0].scrollHeight", follow_list_modal)
    if new_height == last_height:
        break
    last_height = new_height

# 提取所有关注账号信息
follow_items = follow_list_modal.find_elements(By.TAG_NAME, 'li')
for item in follow_items:
    # 此处可根据需求提取用户名、头像等信息
    print(item.text)

注意事项

  • Instagram有严格的反爬机制,频繁操作会触发验证码、临时功能限制甚至账号封禁,建议拉长操作间隔,不要短时间内批量爬取数据
  • 页面的class属性为动态生成值,不要用class做定位规则,优先用href、文本、role属性这类稳定特征定位,避免前端迭代后定位规则失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:42:02