python爬虫 关于requests.exceptions.ConnectionError 等问题

在爬虫中报如下的错误:
requests.exceptions.ConnectionError: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’,))

发现该错误是因为如下:
1、http的连接数超过最大限制,默认的情况下连接是Keep-alive的,所以这就导致了服务器保持了太多连接而不能再新建连接。

2、ip被封

3、程序请求速度过快。

解决办法如下:

第一种方法:

try:
    page1 = requests.get(ap)
except requests.exceptions.ConnectionError:
    r.status_code = "Connection refused"

第二种方法:

request的连接数过多而导致Max retries exceeded

在header中不使用持久连接

'Connection': 'close'

requests.adapters.DEFAULT_RETRIES = 5

第三种方法:
1)随机切换User-Agent:

 user_agent_list = ["Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
                    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
                    "Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0",
                    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36",
                    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",
                    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
                    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
                    "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15",
                    ]
                headers['User-Agent'] = random.choice(user_agent_list)

2)访问频率的设置:

time.sleep(6) 

#测试一下,如果是与访问频率有关可设置时间长一点

3)使用代理ip:

self.proxies = {
            "http": ip,
            "https":ip,
        }
引用\[1\]中的错误信息是requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))。这个错误通常表示在建立连接时出现了问题,可能是由于远程主机强制关闭了连接。引用\[2\]和\[3\]提供了一种处理这个错误的方法,即使用try-except语句来捕获ConnectionError异常,并在异常处理块中进行相应的处理。在这种情况下,可以将r.status_code设置为"Connection refused"来表示连接被拒绝。这样可以在出现连接错误时,对错误进行处理并继续执行其他代码。 #### 引用[.reference_title] - *1* *2* [python爬虫 关于requests.exceptions.ConnectionError问题](https://blog.csdn.net/wancongconga/article/details/111030335)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v4^insert_chatgpt"}} ] [.reference_item] - *3* [python爬虫requests异常requests.exceptions.ConnectionError原因分析及处理](https://blog.csdn.net/caliph21/article/details/104848364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值