ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

错误结果:

Traceback (most recent call last):File "G:/python图片下载/dianshiju_db.py", line 25, in <module>print(imgdon("http://tupian.tupianzy.com/pic/upload/vod/2018-11-12/201811121542011934.jpg"))File "G:/python图片下载/dianshiju_db.py", line 22, in imgdonurllib.request.urlretrieve(img_url, filename=filename)File "E:\python\lib\urllib\request.py", line 248, in urlretrievewith contextlib.closing(urlopen(url, data)) as fp:File "E:\python\lib\urllib\request.py", line 223, in urlopenreturn opener.open(url, data, timeout)File "E:\python\lib\urllib\request.py", line 526, in openresponse = self._open(req, data)File "E:\python\lib\urllib\request.py", line 544, in _open'_open', req)File "E:\python\lib\urllib\request.py", line 504, in _call_chainresult = func(*args)File "E:\python\lib\urllib\request.py", line 1346, in http_openreturn self.do_open(http.client.HTTPConnection, req)File "E:\python\lib\urllib\request.py", line 1321, in do_openr = h.getresponse()File "E:\python\lib\http\client.py", line 1331, in getresponseresponse.begin()File "E:\python\lib\http\client.py", line 297, in beginversion, status, reason = self._read_status()File "E:\python\lib\http\client.py", line 258, in _read_statusline = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")File "E:\python\lib\socket.py", line 586, in readintoreturn self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

分析:出现这种原因代表远程过于频繁,所以远程怀疑是恶意攻击,我是出现在远程图片下载时的错误,我在网上找到的方法如下:

【Python爬虫错误】ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接
我个人的解决是使用函数回调解决的
意思就是当程序因为远程主机强制关闭而报错时,使用try- except在报错时从新调用该方法使其重新抓取,直至抓取成功,一般一两次就会成功,效率还算可以
源代码:

import os
import random
import urllib.requestdef imgdon(url):img_url = urlfile_path = 'D:/book/tvimg/'file_name = "tvimg" + str(int(random.uniform(20, 10) * 10 ** 14))# 是否有这个路径if not os.path.exists(file_path):# 创建路径os.makedirs(file_path)# 获得图片后缀file_suffix = os.path.splitext(img_url)[1]# print(file_suffix)# 拼接图片名(包含路径)# filename = '{}{}{}{}'.format(file_path, os.sep, file_name, file_suffix)filename = file_path + file_name + file_suffixprint(filename)# 下载图片,并保存到文件夹中urllib.request.urlretrieve(img_url, filename=filename)return "http://www.klkj1999.top:8081/tvimg/"+file_name + file_suffixprint(imgdon("http://tupian.tupianzy.com/pic/upload/vod/2018-11-12/201811121542011934.jpg"))

解决后:

import os
import random
import urllib.requestdef imgdon(url):try:img_url = urlfile_path = 'D:/book/tvimg/'file_name = "tvimg" + str(int(random.uniform(20, 10) * 10 ** 14))# 是否有这个路径if not os.path.exists(file_path):# 创建路径os.makedirs(file_path)# 获得图片后缀file_suffix = os.path.splitext(img_url)[1]# print(file_suffix)# 拼接图片名(包含路径)# filename = '{}{}{}{}'.format(file_path, os.sep, file_name, file_suffix)filename = file_path + file_name + file_suffixprint(filename)# 下载图片,并保存到文件夹中urllib.request.urlretrieve(img_url, filename=filename)except:imgdon(url)return "http://www.klkj1999.top:8081/tvimg/"+file_name + file_suffixprint(imgdon("http://tupian.tupianzy.com/pic/upload/vod/2018-11-12/201811121542011934.jpg"))

解决后的结果:

G:\python图片下载\venv\Scripts\python.exe G:/python图片下载/dianshiju_db.py
D:/book/tvimg/tvimg1396168651250299.jpg
D:/book/tvimg/tvimg1502497444740666.jpg
D:/book/tvimg/tvimg1103678614205344.jpg
http://www.klkj1999.top:8081/tvimg/tvimg1396168651250299.jpgProcess finished with exit code 0

ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。相关推荐

  1. python 网络编程 socket 报错 ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

    服务端: # -*- coding: utf-8 -*- """ @File : 191226_基于UDP协议的socket_server端.py @Time : 201 ...

  2. python: 使用socket实现局域网不同主机通信。解决ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

    目录 1 socket的使用 1.1 TCP方法 1.2 UDP方法 2 局域网内连接 2.1 总结 1 socket的使用 1.1 TCP方法 在socket中使用socket.socket建立会话 ...

  3. python使用phantomJS循环for爬取多个页面时,解决内存持续变大而报错“ConnectionResetError: [WinError 10054]远程主机强迫关闭了一个现有的连接”的问题

    python使用phantomJS循环for爬取多个页面时,解决内存持续变大而报错"ConnectionResetError: [WinError 10054]远程主机强迫关闭了一个现有的连 ...

  4. 【Python】ConnectionResetError [WinError 10054] 远程主机强迫关闭了一个现有的连接

    [Python]ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接 今天在学习python时,遇到了一个问题,这个问题比较简单,但是网络上的 ...

  5. ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接

    原因:未使用request之后未使用.close()关闭,且频繁访问,被认为是攻击行为 解决方法一:.close()+暴力循环 i=1while i==1:i=0try:urlop=urllib.re ...

  6. 【Python爬虫错误】ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接

    今天写爬虫爬取天天基金网站(http://fund.eastmoney.com/)时出现如下图所示的错误. 分析原因,是因为使用urlopen方法太过频繁,引起远程主机的怀疑,被网站认定为是攻击行为. ...

  7. torchvision.datasets.FashionMNIST报错[WinError 10054] 远程主机强迫关闭了一个现有的连接

    项目场景: 在李沐老师视频课Softmax 回归 + 损失函数 + 图片分类数据集[动手学深度学习v2]中用到了FashionMNIST数据集. 问题描述: trans = transforms.To ...

  8. 频繁发送socket命令返回:[WinError 10054] 远程主机强迫关闭了一个现有的连接

    第一类 错误原因:发送http请求太过频繁,引起远程主机的怀疑,被网站怀疑是恶意攻击行为. 解决方法: 在发送命令之后关闭连接,防止被认为恶意连接 设置socket默认等待时间 设置读取信息的最大时间 ...

  9. [WinError 10054] 远程主机强迫关闭了一个现有的连接

    出现这样的错误,是因为我们访问的速度过于频繁,致使网页认为我们是恶意的攻击行为,就出现了远程主机强迫关闭的现象. 加上 time.sleep(time) 放慢一下我们的速度,减少我们的循环访问,避免过 ...

最新文章

  1. mysql中关系怎么弄_mysql数据库关系操作
  2. 读淘宝商品描述页源码delphi版
  3. 丘成桐教授,不必动怒
  4. LeetCode Reverse Nodes in k-Group(单链表连续分段反转)
  5. HTML5在豆瓣的各种应用
  6. python教程:列表(list)、元组(tuple)、字典(dict)
  7. 盘点:最值得托付终身的星座
  8. 1月3日学习内容整理:modelform
  9. MapReduce:Job性能调优总结
  10. python实例属性与类属性_Python类属性与实例属性用法分析
  11. jenkins修改pom文件_从Jenkins中的pom文件自动派生强制性SonarQube属性
  12. SpringMVC工作总结001_SpringMVC拦截器(资源和权限管理)
  13. 使用ssms异机还原数据库_使用SSMS 18中的查询优化助手向导进行数据库升级
  14. LeetCode 30. Substring with Concatenation of All Words
  15. Modbus通讯协议学习 - 认识篇
  16. 工程力学和计算机专业,2018工程力学专业就业方向及就业前景分析
  17. 基于容器的虚拟化资源调度系统的架构设计
  18. springboot上传图片到阿里云OSS并实现浏览器预览
  19. 华为新系统鸿蒙接入,魅族宣布接入鸿蒙系统,支持华为,给力!
  20. 基于Matlab对大米计数的研究

热门文章

  1. STM32超级简便的按键代码 只需三行 可实现短按+长按
  2. if(!ispostback)其用法和作用 什么时候该用?
  3. 二极管、三极管在实际使用中的理解
  4. Html和Xml中注释符
  5. java类接口的区别_java抽象类和接口区别
  6. Android 离线人脸识别方案总结
  7. Coursera | Andrew Ng (02-week-1-1.7)—理解 Dropout
  8. 三天流量有效期具体怎么算_飞猪流量有效期多久?怎么提取?
  9. 音乐服务器制作教程,让NAS做音乐服务器
  10. 并查集——加边的无向图