zoukankan      html  css  js  c++  java
  • pytho爬虫经常报错错误 Traceback (most recent call last) 错误信息

    解读错误信息就可以定位错误。
    Traceback (most recent call last):
    这是错误的跟踪信息。

    File "XXX.py", line 13, in <module>
    f3('0')
    

    调用f3()出错了,错误出现在文件XXX.py的第13行代码,错误来源第9行:

    File “XXX.py”, line 12, in f3

    return f2(s)+1
    

    调用f2()出错了,错误出现在文件XXX.py的第12行代码,错误来源第8行:

    == File “XXX.py”, line 8, in f2 ==

    return f1(s)+1
    

    调用f1()出错了,错误出现在文件XXX.py的第8行代码,错误来源第4行:

    ==File “XXX.py”, line 4, in f1 ==

    return 1 / int(s)
    

    return 1 / int(s)出错了,找到了错误的源头。

    == ZeroDivisionError: division by zero==

    这是错误类型。
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    原因

    当用快速爬取某网站出现经常出现Traceback (most recent call last):的错误,也就是连接失败。原因首先是快速爬取连接时网络不稳定造成的。
    一般解决方案:
    加入判断函数

    def getHTMLText(url):
        maxTryNum = 20
        for tries in range(maxTryNum):
            try:
                kv = {"user-agent": "Mizilla/5.0"}
                response = requests.get(url, headers=kv, timeout=10)
                return response.text
            except:
                if tries < (maxTryNum - 1):
                    continue
                else:
                    print("Has tried %d times to access url %s, all failed!" % (maxTryNum, url))
                    break
    
  • 相关阅读:
    Ubuntu16.04下同时安装Anaconda2与Anaconda3
    ansible 常用模块
    docker 笔记 (7) 限制容器
    linux 磁盘
    docker 笔记 (6)搭建本地registry
    docker 笔记 (5)常用命令
    docker 笔记(4) Dockerfile 常用的指令
    NGINX下配置CACHE-CONTROL
    mysql二进制安装
    [Selenium] Explicit wait 方法
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832353.html
Copyright © 2011-2022 走看看