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

Python Selenium报错UnboundLocalError:local变量'followin'引用前未赋值的解决方法求助

修复Python Selenium Instagram机器人中的UnboundLocalError错误

嘿,我来帮你搞定这个错误!你遇到的UnboundLocalError其实是个挺常见的小问题,咱们一步步拆解:

错误原因

你看这段代码里,followin变量是在for followin in following:的循环内部定义的——只有当循环执行的时候,这个变量才会被赋值。如果following列表是空的(比如页面没加载出关注者元素,或者目标账号没有关注任何人),循环根本不会跑,followin就从来没被创建过,这时候你在循环外面调用len(followin),Python自然会报错说“这个变量还没赋值就被引用了”。

而且更关键的是:你原本想统计的应该是所有关注者的数量,而不是单个关注者元素的长度(followin是WebElement对象,len(followin)本来就不是你要的结果)。

修复方案

直接把print(len(followin))改成print(len(following))就搞定了!因为following是你存储所有关注者元素的列表,len(following)才是你真正需要的关注者数量。

修改后的完整代码片段:

class accinfo():
    def getfolowing(acclink):
        time.sleep(2)
        profileurl = "https://instagram.com/" + (acclink) + "/"
        browser.get(profileurl)
        time.sleep(2)
        wait.until(EC.visibility_of_element_located( (By.XPATH, '//*[@id="react-root"]/section/main/div/header/section/ul/li[3]/a/div'))).click()
        ##accinfo.scroldownflowng()
        # 下面这行following = []可以删掉,因为下一行已经重新赋值了
        following = browser.find_elements(By.CLASS_NAME, 'notranslate._0imsa')
        for followin in following:
            print(followin.text)
        # 统计following列表的长度,这才是关注者总数
        print(len(following))
        time.sleep(10)

accinfo.goprofile(hedefhesap, loginfo1)
accinfo.getfollower(hedefhesap)
accinfo.getfolowing(hedefhesap)

额外小建议

代码里的following = []其实是多余的,因为下一行following = browser.find_elements(...)已经会给following赋值了,删掉这行能让代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 13:22:47