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

Python报错AttributeError: 'int'对象无'find'属性,请求技术帮助

问题排查:AttributeError: 'int' object has no attribute 'find'

接触Python仅1小时,修改代码时将遍历soup查询结果的循环改为遍历range(1,52)的整数后,出现错误:AttributeError: 'int' object has no attribute 'find'。以下是可运行与不可运行代码的对比,请求排查问题:

可运行代码

contents = soup.find('table').find_all('a')

for i in contents:            
        print("---------------------------")
        link = i.find("td", class_= "cafecoffee").find_all("a")[0]
        print("link :")
        print("naver.com" + link)

        title = i.find("td")
        print("title:",title.text)

不可运行代码

contents = soup.find('table').find_all('a')

for i in range(1,52): # <<<<changed
        print("---------------------------")
        link = i.find("td", class_= "cafecoffee").find_all("a")[0]
        print("link :")
        print("naver.com" + link)

        title = i.find("td")
        print("title:",title.text)

问题原因&解决方法

  • 错误根源:原来的for i in contents中,i是BeautifulSoup解析后得到的Tag对象,自带find等解析方法;改成range(1,52)遍历后,i变成了1到51的整数,整数没有find方法,自然报错。
  • 若要遍历前51个查询结果:直接用for i in contents[:51]:(前提是contents的长度≥51)
  • 若非要用索引遍历:需要通过索引从contents里取对应的Tag对象,代码修改如下:
contents = soup.find('table').find_all('a')

for idx in range(1,52): 
        i = contents[idx-1]  # 列表索引从0开始,所以要减1
        print("---------------------------")
        link = i.find("td", class_= "cafecoffee").find_all("a")[0]
        print("link :")
        print("naver.com" + link)

        title = i.find("td")
        print("title:",title.text)

内容的提问来源于stack exchange,提问作者임민서

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 17:30:41