首页
学习
活动
专区
圈层
工具
发布

Python爬虫基础知识:异常的处理

这种情况下,异常同样会带有"reason"属性,它是一个tuple(可以理解为不可变的数组), 包含了一个错误号和一个错误信息。...我们建一个urllib2_test06.py来感受一下异常的处理: 按下F5,可以看到打印出来的内容是: [Errno 11001] getaddrinfo failed 也就是说,错误号是11001...其他不能处理的,urlopen会产生一个HTTPError。 典型的错误包含"404"(页面无法找到),"403"(请求禁止),和"401"(带验证请求)。...处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃 301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源 处理方式:重定向到分配的URL 302...处理方式:丢弃 401 未授权 处理方式:丢弃 403 禁止 处理方式:丢弃 404 没有找到 处理方式:丢弃 5XX 回应代码以“5”开头的状态码表示服务器端发现自己出现错误

1.3K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个localhost引发的血案。

    to proxy request /repay/get_api_info from localhost:8084 to http://localhost:8088 (ENOTFOUND) (https:...//nodejs.org/api/errors.html#errors_common_system_errors) 拿着此错误码google了一下,无果。...原来这个错误是经过加工的,而且真正抛出错误的地方还不是此模块,而是它依赖的另外一个模块(/node_modules/http-proxy) 先不管这些,先将错误信息打印出来看看详细错误。...GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26) code: 'ENOTFOUND', errno: 'ENOTFOUND'...总结: 此问题的解决和运气有一定的关系,同时,自己的解决问题的思路也有问题,浪费了很多时间。 如果一开始就认真分析错误日志,可能早就解决了。 —全文完—

    88810

    【Python】已解决:nltk.download(‘stopwords‘) 报错问题

    然而,在尝试下载这些资源时,有时会遇到网络连接问题,导致下载失败。...[Errno 11004] [nltk_data] getaddrinfo failed> False 这个错误通常发生在尝试从NLTK的服务器下载停用词列表时。...二、可能出错的原因 网络连接问题:getaddrinfo failed通常指示DNS解析失败,这可能是因为计算机无法连接到NLTK的服务器,可能是由于网络断开、网络配置错误或DNS服务器问题。...,就可能会触发上述错误。...错误处理:在实际应用中,应该添加适当的错误处理机制来捕获和处理可能出现的网络错误。 资源备份:对于重要的资源文件,如停用词列表,建议备份到本地或私有服务器,以防外部资源不可用。

    35210

    【Python】已解决:nltk.download(‘averaged_perceptron_tagger’) Error loading averaged_perceptro

    : <urlopen error [nltk_data] [Errno 11004] getaddrinfo failed> False 这个错误通常发生在尝试从NLTK的服务器下载数据包时。...二、可能出错的原因 这个错误可能由以下几个原因导致: 网络连接问题:计算机可能无法连接到NLTK的下载服务器,这可能是由于网络配置错误、防火墙限制或网络不可用等原因造成的。...DNS解析失败:getaddrinfo failed表明在将服务器域名解析为IP地址时出现了问题,这通常与网络配置或DNS服务器设置有关。...('averaged_perceptron_tagger') 如果执行上述代码时网络连接存在问题,就可能会触发上述报错。...如果自动下载仍然失败,你可以尝试从NLTK的官方网站或其他可信来源手动下载所需的数据包,并将其解压到NLTK的数据目录中。

    48710

    celery执行的任务老是错误,让人头疼?这时候就要上错误重试!

    但是当我远程调用腾讯云服务器的时候,总会偶尔出现一些报错的情况,这就让我很纠结郁闷了。...将多次并发的远程调用尽量合并一次性执行,将shell执行的错误返回进行处理。 尽管做了那么多的改动以及优化,任务依然会出现ssh访问被偶尔阻止的情况,这时候就只能上这个错误重试了。...本次说明,我采用的是发送邮件错误的情况作为示例,如下: 在异步调用任务中经常需要调用第三方的api请求,如果一次执行失败,则应该进行重试执行。...raise socket.gaierror(socket.EAI_NONAME, 'No address found') socket.gaierror: [Errno 11001] No address...随后一直重试执行了5次都报错,说明重试的5次是从第一次执行失败后计算的。 好了,大概celery错误重试的机制大概就是如此。后续,我会继续尽量将工作中碰到的问题,以及解决的方法抛出来进行分享,谢谢。

    2.5K20

    Celery 4.3.0 任务失败重试机制

    存在的现象 在异步调用任务中经常需要调用第三方的api请求,如果一次执行失败,则应该进行重试执行。否则,如果在执行一些连续性的chain链条任务,前面执行失败,那么后续的也就不用执行了。...错误重试示例 故意将邮件服务的地址配置错误 为了做到错误的演示,我首先将发送邮件的smtp地址写错,如下: ? 那么稍后执行发送邮件的时候,就一定会报找不到smtp的错误。...编写错误重试的task任务 ?..., 'N o address found') # 当执行错误之后,下面则会重试执行5次任务,直到成功,或者失败 [2019-10-21 14:01:18,224: WARNING/MainProcess...raise socket.gaierror(socket.EAI_NONAME, 'No address found') socket.gaierror: [Errno 11001] No address

    4K20

    IPv6 socket编程下--实现篇

    AI_V4MAPPED为了在非DNS64网络下,返回v4-mapped ipv6 address,不会返回EAI_NONAME失败,导致判断不准确。...不过这个方案有很多缺点,就是耗时不确定,可能因为网络失败导致错误的结果,需要网络流量,会对运营商的DNS服务器造成压力,网络切换需要立刻进行重试重连。 结论,这个方案不太合适。...必须说明下,这个不是一个准确的判断,如果网络是ELocalIPStack_Dual,但是dns服务只设置了IPv6的地址(如果是dhcp配置的情况,很少出现这样,一般情况都是手工设置才会出现),会判断当前网络为...sockaddr_storage 这里千万不要犯傻用sockaddr存储sockaddr_in6数据,IOS上sockaddr的大小是16,和sockaddrin一致的,但是sockaddrin6大小是28(不要问我为什么会知道...hints.ai_flags |= AI_ADDRCONFIG这个是一个很有用的特性,这个flags表示getaddrinfo会根据本地网络情况,去掉不支持的IP协议地址。

    9.4K61

    PHP中的MySQLi扩展学习(二)mysqli类的一些少见的属性方法

    to user 'root2'@'localhost' for table 'zyblog_test_user'" errno 属性里面保存的就是数据库的错误号,error 属性中保存的是错误信息的详细文本说明...连接错误信息 当然,如果在连接数据库的时候就产生了错误,我们也可以通过 connect_errno 和 connect_error 来获得它们的错误号和错误信息内容。...)var_dump($mysqli2->connect_error); // string(90) "php_network_getaddresses: getaddrinfo failed: nodename...其实就相当于关闭了当前这个 mysqli 对象的连接,这时我们再使用这个连接对象进行其它操作时就会出现 MySQL server has gone away 的提示信息了。..."]=>// int(2002)// ["connect_error"]=>// string(90) "php_network_getaddresses: getaddrinfo

    2.5K00

    PHP中的MySQLi扩展学习(二)mysqli类的一些少见的属性方法

    to user 'root2'@'localhost' for table 'zyblog_test_user'" errno 属性里面保存的就是数据库的错误号,error 属性中保存的是错误信息的详细文本说明...连接错误信息 当然,如果在连接数据库的时候就产生了错误,我们也可以通过 connect_errno 和 connect_error 来获得它们的错误号和错误信息内容。...) var_dump($mysqli2->connect_error); // string(90) "php_network_getaddresses: getaddrinfo failed: nodename...其实就相当于关闭了当前这个 mysqli 对象的连接,这时我们再使用这个连接对象进行其它操作时就会出现 MySQL server has gone away 的提示信息了。..."]=> // int(2002) // ["connect_error"]=> // string(90) "php_network_getaddresses: getaddrinfo

    2K10

    Linux网络编程基础API

    当然,调用 close 函数的同时关闭 I/O 流,这样也会向对方发送 EOF 。但此时无法再接受对方传输的数据。...recv 出错时返回-1并设置errno。 send往sockfd上写入数据,buf和len参数分别指定写缓冲区的位置和大小。send成功时返回实际写人的数据的长度,失败则返回-1并设置ermo。...getsockname 成功时返 回0,失败返回-1并设置errno。...因此可以通过此变量获取保存在- - h_addr_list 的IP地址族信息。若是 IPV4 ,则此变量中存有 AF_INET。 h_length:保存IP地址长度。...getnameinfo和getaddrinfo函数成功时返回0,失败时返回错误码,可能的错误码如表: Linux下strerror函数能将数值错误码error转换成易读的字符串形式,同样下面的函数可将表错误码转换成字符串形式

    1.7K20

    Python:爬虫系列笔记(4) -- URL异常处理

    urlopen(requset)except urllib2.URLError, e: print e.reason 我们利用了 urlopen方法访问了一个不存在的网址,运行结果如下: 1 [Errno...11004] getaddrinfo failed 它说明了错误代号是11004,错误原因是 getaddrinfo failed 2.HTTPError HTTPError是URLError的子类...其他不能处理的,urlopen会产生一个HTTPError,对应相应的状态吗,HTTP状态码表示HTTP协议所返回的响应的状态。下面将状态码归结如下: 100:继续 客户端应当继续发送请求。...处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃 301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源 处理方式:重定向到分配的URL 302...一般来说,这个问题都会在服务器端的源代码出现错误时出现。 501:服务器无法识别 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。

    2K90

    Linux:system 调用引发的 getcwd 异常

    import time import os time.sleep(3) os.system('sleep 1') 那么问题来了,test_b 明明就只想睡个觉,不想涉足江湖事,也没有调用getcwd,为什么会输出这个报错咧...很快我们就找到这句错误定义的地方了: root@bash-4.4 $ grep 'shell-init' -r * variables.c: temp_string = get_working_directory...for_whom : get_name_for_error (), _(bash_getcwd_errstr), strerror (errno)); return (...(跳过) } 虽然大部分是通过变量传值进去,但是还是能看出就是咱们那句报错的原型了, 其实上面的代码实现并不是最关键的,关键的是,这些代码文件是在 bash 里面的,为什么system 会和bash 扯上关系呢...那现在其实一目了然了,system调用了 /bin/sh, 触发shell 初始化了, 在初始化变量时候调用了 get_working_directory,因为获取父目录失败了,所以输出了那段错误。

    1.6K20

    猫头虎分享:如何解决服务器报错 OpenSSL SSL_read: Connection was reset, errno 10054 问题

    问题背景 一位粉丝留言提问: 在使用 OpenSSL 与服务器通信时,调用 SSL_read 时遇到 Connection was reset, errno 10054 错误。...证书验证失败。 3️⃣ 连接被强制中断 服务端由于超时或资源问题主动断开连接。 客户端使用非预期的行为关闭连接。...✅ 解决措施 升级 OpenSSL 到最新稳定版本: sudo apt-get update sudo apt-get install openssl openssl version 启用兼容的 TLS...OpenSSL 配置 提升兼容性,解决协议问题 需要重新编译或升级库 重试逻辑 提升稳定性,防止偶发中断 可能增加延迟 启用调试日志 提供详细排查线索 需分析日志,耗时较长 常见问题 Q&A Q1: 为什么会出现...errno 10054?

    43410
    领券