这种情况是否有比“try except”来处理例外更好的方法?

    try:
        name = div_each.find("h1",class_="name").find("span",class_="ng-binding").text.strip()
        des = div_each.find("p",class_="description ng-binding ng-scope").text.strip()
        url =div_each.find("div",class_="text").find("a",class_="ng-binding").text.strip()
        #total.append(url)
        total.append([name, des, url])
    except Exception as e:
        pass

RT,我的需求是,即使数据不全,只要name,des,url三个数据有一个存在,就要作为单独一条抓出来。
但为了防止报错我用了try except,但是这样处理的话,就会遗漏有缺陷的数据。

有什么更好的办法来处理这个问题呢?有人提到用get,但是好像get只能提属性,有时候我要提元素的text,这该咋办呢?

实现方法可以改变一下程序结构,try except结构不变

lists = []
try:
    name = div_each.find("h1", class_="name").find("span", class_="ng-binding").text.strip()
    lists.append(name)
    # total.append(url)

except Exception as e:
    lists.append('')
    try:
        des = div_each.find("p", class_="description ng-binding ng-scope").text.strip()
        lists.append(des)
    except:
        lists.append('')
        try:
            url = div_each.find("div", class_="text").find("a", class_="ng-binding").text.strip()
            lists.append(url)
        except:
            lists.append('')

if lists.count('')<3:
    
    total.append(lists)

有帮助请采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力

try:
    name = div_each.find("h1",class_="name").find("span",class_="ng-binding").text.strip()

except:
name = ''
try:
des = div_each.find("h1",class_="name").find("span",class_="ng-binding").text.strip()
except:
des= ''
try:
url = div_each.find("h1",class_="name").find("span",class_="ng-binding").text.strip()
except:
url = ''
判断一下这三个不同时为空,然后添加到列表不就行了