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,
        }
  • 18
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
引用和中提到的错误信息 "requests.exceptions.ConnectionError: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’,))" 表示在爬虫中发生了连接错误,远程服务器关闭了连接而没有返回任何响应。这个错误通常是由于网络连接问题或服务器问题引起的。引用中提到的方法是对此错误进行异常处理的一种方式,即在请求时使用 try-except 语句来捕捉 ConnectionError 异常并处理。具体的处理方式是将请求的状态码设置为 "Connection refused"。这是一种简单粗暴的处理方法,但可能无法解决实际的网络连接问题。通常情况下,可以尝试以下几种方法来解决这个错误: 1. 检查网络连接:确保你的网络连接正常,可以尝试重新连接网络或使用其他网络进行测试。 2. 检查目标服务器状态:确认目标服务器是否正常运行,可以尝试通过其他方式访问该服务器,比如在浏览器中打开目标网页。 3. 增加超时设置:在请求时可以设置一个较长的超时时间,以便等待服务器响应。可以通过设置 `timeout` 参数来实现,例如 `requests.get(url, timeout=10)`。 4. 使用代理:如果你的网络环境有限制或存在防火墙,可以尝试使用代理服务器进行请求。可以通过设置 `proxies` 参数来实现,例如 `requests.get(url, proxies={"http": "http://proxy.example.com:8080"})`。 5. 降低请求频率:如果你的爬虫程序发送了大量请求导致服务器拒绝连接,可以尝试降低请求频率,增加请求之间的延迟时间,以免给服务器造成过大的负担。 总之,ConnectionError 错误通常是由于网络连接问题或服务器问题引起的,可以通过检查网络连接、确认服务器状态、增加超时设置、使用代理或降低请求频率来尝试解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [python requests 报错 Connection aborted ConnectionResetError RemoteDisconnected 解决方法](https://blog.csdn.net/whatday/article/details/109257348)[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 ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值