Chainguys 2021-10-27 10:50 采纳率: 93.6%
浏览 46

这种情况是否有比“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,这该咋办呢?

  • 写回答

2条回答 默认 最新

  • 辉煌仪奇 2021-10-27 10:54
    关注

    实现方法可以改变一下程序结构,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)
    

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

    评论

报告相同问题?

问题事件

  • 创建了问题 10月27日

悬赏问题

  • ¥15 根据会员信息表绘制堆积柱状图
  • ¥100 华为手机私有App后台保活
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估
  • ¥15 java 通过反射找路径下的类,打包后就找不到
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,