栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

如何用装饰器解决python爬取页面出错?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用装饰器解决python爬取页面出错?

继上篇我们讲过爬取出错的问题后,小编想进一步的与大家探讨这个问题。我们都知道不同网站对于爬虫的态度是不一样的,有的没有太多限制,有的爬虫是会被阻拦在外的。我们无法改变外界的网站环境,那么只能对于获取数据出错的方式尽可能的积极寻找解决办法和减少出错的可能性。接下来小编就教大家用装饰器解决python爬取页面出错的办法。


不同用户模版,用到的解析规则就不一样。那么出现解析异常如何处理?尤其是你没有catch到的异常。很可能因为这个问题,程序就崩掉。其实对于Python这门语言来说,我们可以通过 **装饰器** 来捕捉我们没有考虑到的异常。


def parse_decorator(return_type):
    """
    :param return_type: 用于捕捉页面解析的异常, 0表示返回数字0, 1表示返回空字符串, 2表示返回[],3表示返回False, 4表示返回{}, 5返回None
    :return: 0,'',[],False,{},None
    """
    def page_parse(func):
        @wraps(func)
        def handle_error(*keys):
            try:
                return func(*keys)
            except Exception as e:
                parser.error(e)
 
                if return_type == 5:
                    return None
                elif return_type == 4:
                    return {}
                elif return_type == 3:
                    return False
                elif return_type == 2:
                    return []
                elif return_type == 1:
                    return ''
                else:
                    return 0
        return handle_error
return page_parse


上面的代码就是处理解析页面发生异常的情况,我们只能在数据的准确性、全面性和程序的健壮性之间做一些取舍。用装饰器的话,程序中不用写太多的 `try`语句,代码重复率也会减少很多。


以上的注意点小伙伴们可要牢记,毕竟在处理爬取出错的情况上,我们也没有太多更好的解决办法。更多Python学习指路:PyThon学习网教学中心。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/11701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号