python访问目标网站报错(‘Connection aborted.‘, error(54, ‘Connection reset by peer‘))解决方案

前言

有关注我博文的人应该知道,我最近在搞大数据方面的东西。有一些数据的需求是需要用到爬虫的,所以这段时间我用python比较多,当然,我也是现学现卖,所以有一些坑也是需要踩的。但是我希望,我踩过的坑,我的读者都能很快跨过去,所以今天在这里分享我踩的一个坑~

场景

由于我现在做的业务是国际方面的,所以我免不了要访问一些有特定访问方式的网站,而公司的网络环境又各种限制,所以我只能拿出我的陈年老Mac出来搞爬虫~

我遇到的问题

访问的是国外的网站,所以我第一步肯定是已经用工具来进行科学上网啦~

我也验证了,我确实可以访问谷歌,用Chrome和safari都可以。

但是呢,我用python写访问目标网站的代码,就是不行。

要不就连接超时,要不就访问拒绝,报错如下:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='***', port=443): Max retries exceeded with url: *** (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x104491cc0>: Failed to establish a new connection: [Errno 60] Operation timed out',))
requests.exceptions.ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))

我也上网查了一些资料,verify=false,keep_alive=false这些都加上了,然并卵T^T,该报错还是报错(当然,还是得加上哈)。

转折

我有用postman测试过,访问是正常的,但是一样的请求头,一样的请求参数,放到python和Java中,就是不行。

那有没有可能不是语言的问题呢?

我再试了在其它程序访问需要科学上网的网站,如:在terminal访问谷歌,看能否ping通。

结果跟我想的一样,连接超时~

那我大致知道是啥情况了~

我漏做了一步,我得把request的请求通过我的代理转发出去~

说试就试~

proxy = '127.0.0.1:9180' //这里写代理的ip及端口
proxies = {
     'http': 'http://' + proxy,
     'https': 'https://' + proxy
 }
...
result = s.get(url=req, params=param, headers=headers, verify=False, proxies=proxies)

结果再也不报错了~哈哈哈。

Windows的系统估计也是跟我的Mac一样的问题,毕竟出方向的端口应该不是都一样的,除非你的网络是可以直接访问目标网站的,那应该不会遇到跟我一样的问题啦~

By the way

有问题?可以给我留言或私聊
有收获?那就顺手点个赞呗~

当然,也可以到我的公众号下「6曦轩」,

回复“学习”,即可领取一份
【Java工程师进阶架构师的视频教程】~

回复“面试”,可以获得:
【本人呕心沥血整理的 Java 面试题】

回复“MySQL脑图”,可以获得
【MySQL 知识点梳理高清脑图】

还有【阿里云】【腾讯云】的购买优惠噢~具体请联系我

曦轩我是科班出身的程序员,php,Android以及硬件方面都做过,不过最后还是选择专注于做 Java,所以有啥问题可以到公众号提问讨论(技术情感倾诉都可以哈哈哈),看到的话会尽快回复,希望可以跟大家共同学习进步,关于服务端架构,Java 核心知识解析,职业生涯,面试总结等文章会不定期坚持推送输出,欢迎大家关注~~~

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Connection aborted. , ConnectionResetError(104, Connection reset by peer)可能是由两个原因引起的。首先,这可能是因为请求过于频繁,导致请求被服务器拒绝。其次,可能是由于连接超时或访问被拒绝的问题引起的。在这种情况下,通常会出现类似的错误信息,如requests.exceptions.ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))或requests.exceptions.ConnectionError: HTTPSConnectionPool(host='***', port=443): Max retries exceeded with url: *** (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x104491cc0>: Failed to establish a new connection: [Errno 60] Operation timed out',))。为了解决这个问题,你可以尝试两种方法:1.减少请求频率,避免过于频繁地发送请求;2.检查目标网站是否有认证或反爬机制,并识别是否拒绝了Python终端的访问。如果是这种情况,你可以尝试设置一个休眠时间,例如time.sleep(1),来减慢请求的速度,以规避反爬机制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [python requests请求报错ConnectionError: (‘Connection ...‘, error(104, ‘Connection reset by peer‘))](https://blog.csdn.net/weixin_43925447/article/details/123191482)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python访问目标网站报错(‘Connection aborted.‘, error(54, ‘Connection reset by peer‘))解决方案](https://blog.csdn.net/weixin_42669785/article/details/111085396)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值