python urlib2报错gaierror: [Errno 11004] getaddrinfo failed

  gaierror : get address info error,获取网络地址信息错误。 url不正确,代理信息配置不正确都会报这个错误。

摘自https://blog.csdn.net/qq_19342635/article/details/79814456的部分内容:

  

  写了一个非常简单的发送HTTP请求的类,有时候运行几千次都不会报错,有时候运行几十次就会报开头的那个【11004】错误。网上找了很多教程,比如在头部加上断开连接的标记,或者增大重试次数都不好使。

  所以,重新试一次就好了嘛,检查到错误就睡两秒重发。

class HTTPsClient(object):
    def __init__(self, url):
        self.url = url
        self.session = requests.session()

    def send(self, data=None, **kwargs):
        flag = False
        while not flag:
            try:
                response = self.session.request(method=‘POST‘, url=self.url, data=data,**kwargs)
            except:
                print u‘[%s] HTTP请求失败!!!正在准备重发。。。‘ % get_time()
                time.sleep(2)
                continue
            flag = True
        self.session.close()

  

  不一定要写成一直重试,也可以设置重试的次数。

原文地址:https://www.cnblogs.com/lnlvinso/p/9813740.html

时间: 2024-10-09 11:07:13

python urlib2报错gaierror: [Errno 11004] getaddrinfo failed的相关文章

[Errno 11004] getaddrinfo failed

使用Python的urllib读取网页,报错:[Errno 11004] getaddrinfo failed 主要原因是需要在Python中设置proxy 加入下面语句即可解决这个问题 proxy_support = urllib2.ProxyHandler({"http":"http://proxy.your_domain.com:8080/"})opener = urllib2.build_opener(proxy_support)urllib2.instal

记踩坑--Flask Web开发:第六章的电子邮件 ----[Errno 11004] getaddrinfo failed

必须要记录下踩过的坑,一来,为后来者铺路,二来,实在摔得疼,提醒自己写代码要谨小慎微. [Errno 11004] getaddrinfo failed 1.先排除邮箱账号和授权码的错误 测试如下代码:(注:邮箱号和授权码换成你自己的) # -*- coding: utf-8 -*- from flask import Flask from flask_mail import Mail, Message app = Flask(__name__) app.config['MAIL_SERVER'

Python递归报错:RuntimeError: maximum recursion depth exceeded in comparison

Python中默认的最大递归深度是989,当尝试递归第990时便出现递归深度超限的错误: RuntimeError: maximum recursion depth exceeded in comparison 简单方法是使用阶乘重现: 1 #! /usr/bin/env Python 2 3 def factorial(n): 4 5 if n == 0 or n == 1: 6 7 return 1 8 9 else: 10 11 return(n * factorial(n - 1)) >

python 编码报错问题 'ascii' codec can't encode characters 解决方法

python在安装时,默认的编码是ascii, 当程序中出现非ascii编码时,python的处理常常会报这样的错 'ascii' codec can't encode characters python没办法处理非ascii编码的, 此时需要自己设置将python的默认编码,一般设置为utf8的编码格式. 查看python的默认编码 print sys.getdefaultencoding() 解决方法一(已通过验证,顺带也解决了我之前字符前一直加u的问题) 在python安装目录下,进入\P

安装python模块报错 error: command 'gcc' failed with exit status 1

最近在安装paramiko模块的时候,总是报错:error: command 'gcc' failed with exit status 1,一开始比较挠头.找了蛮多资料,说的大多都是说缺少Python-devel 包,然而并不是! 最后蛮费劲的找到了一遍短小但就是正确的博文:http://blog.csdn.net/fenglifeng1987/article/details/38057193 —————————————————————— 解决方法: 安装:yum install gcc li

运行python代码报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 91: ordinal not in range(128)的解决办法

1.通过搜集网上的资料,自己多次尝试,问题算是解决了,在代码中加上如下几句即可: import sys reload(sys) sys.setdefaultencoding('utf-8') 2.原因就是Python的str默认是ascii编码,和unicode编码冲突,混淆了python2 里边的 str 和 unicode 数据类型. 3.python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii. 运行python代码报错UnicodeDec

salt-call报错OSError: [Errno 13] Permission denied: '/root/.gvfs'

今天通过salt获取磁盘信息,并且通过return到mysql,但是发现表里面少了点minion的信息,然后经查看,都是一些新的ibm x3650 m4的机器 然后在saltstack的源码找到了status.diskusage的实现,先看看是怎么实现的磁盘使用量吧,下面是源码 ret = {} for path in selected: fsstats = os.statvfs(path) blksz = fsstats.f_bsize available = fsstats.f_bavail

python执行报错 configparser.NoSectionError: No section: 'section_1'

场景:请求获取验证码模块regVC.py读取配置文件config.ini时,regVC.py模块单独执行正常,但通过run_all.py模块批量执行时报错,找不到section 解决办法:配置文件路径需写绝对路径 config.ini文件如下: regVC.py模块代码如下: 1 import requests 2 import configparser 3 import unittest 4 from Case.readexcel import ExcelData 5 import json

python webdriver 报错WebDriverException: Message: can't access dead object的原因(pycharm中)

PyCharm中运行firefox webdriver访问邮箱添加通讯录的时候报错-WebDriverException: Message: can't access dead object 调了半天,发现是因为在登录操作后没有从frame中切换出来导致的,因为在登录的时候需要先切换到frame中,登录之后要切换出来才能继续其他操作. 下面是我运行的代码,driver.switch_to.default_content()这一行被我注释掉了,结果就报这个错 代码:driver=webdriver