首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于范围内的I(1,len(f.find_all(‘tr’):AttributeError:'NoneType‘对象没有属性'find_all’

对于范围内的I(1,len(f.find_all(‘tr’):AttributeError:'NoneType‘对象没有属性'find_all’
EN

Stack Overflow用户
提问于 2022-09-12 05:11:02
回答 1查看 29关注 0票数 -1

喂,伙计们,有人能帮我做这个吗?我想刮一张桌子--这会让我出错

忽略on_ready跟踪(最近一次调用)中的异常:文件on_ready第343行,在_run_event中等待coro(*args,**kwargs)文件“C:/User/lacha/Desktop/gagarin/test.py”,第64行,在on_ready for I in range(1,len(‘tr’))中: AttributeError:'NoneType‘对象没有属性'find_all’

代码语言:javascript
复制
f = soup.find('table', {"class": "symbol-table svelte-1q7g1fn"}) 
for i in range(1, len(f.find_all('tr'))): 
    try: 
        a = f.find_all('tr')[i] 
        dat = a.find_all('td')[0] 
        symb = a.find_all('td')[1] 
        name = a.find_all('td')[2] 
        exc = a.find_all('td')[3] 
        price = a.find_all('td')[4] 
        share = a.find_all('td')[5] 
        print(f'{dat.text} {symb.text} {name.text}')
EN

回答 1

Stack Overflow用户

发布于 2022-09-12 05:23:45

您得到了错误,因为如果f = soup.find('table',...没有为给定的类找到任何元素,它将返回None。因此,您必须添加一个if语句来检查f的值是否为None

代码语言:javascript
复制
f = soup.find('table', {"class": "symbol-table svelte-1q7g1fn"}) 

if f is not None:
    for i in range(1, len(f.find_all('tr'))): 
        try: 
            a = f.find_all('tr')[i] 
            dat = a.find_all('td')[0] 
            symb = a.find_all('td')[1] 
            name = a.find_all('td')[2] 
            exc = a.find_all('td')[3] 
            price = a.find_all('td')[4] 
            share = a.find_all('td')[5] 
            print(f'{dat.text} {symb.text} {name.text}')
        except TypeError:
            pass

else:
    print("Soup not find the element for the given class")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73684723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档