首页 > 编程问答 >Python3打开图片时请求ConnectionResetError(10054)

Python3打开图片时请求ConnectionResetError(10054)

时间:2024-07-25 05:29:21浏览次数:14  
标签:python python-requests web-crawler

我试图从' http://xxx.jpg '之类的网站下载图片。

代码:

headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36'}
url='http://xxx.jpg'
response = requests.get(url,headers=headers)
downloadFunction()

错误写道:

requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))

第一次请求时发生错误,所以它不是导致错误的请求频率。而且我仍然可以使用浏览器打开网站,因此我只需要代码使其更像浏览器。除了设置用户代理之外,我怎样才能实现这一点?


你遇到的错误信息 "ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host')" 表明服务器主动关闭了你的连接。这通常是由于以下几种原因:

1. 服务器过载或限制爬虫:

  • 网站服务器可能正经历高流量负载,无法处理你的请求。
  • 网站可能检测到你的脚本是爬虫,并采取措施阻止它,例如限制连接频率或封禁IP地址。

2. 防火墙或代理问题:

  • 你的网络中的防火墙或代理服务器可能阻止了与目标网站的连接。

3. 网站本身的问题:

  • 网站服务器可能存在配置错误或临时故障。

解决方法:

1. 检查网络连接:

  • 确保你的网络连接稳定,并且能够访问其他网站。
  • 尝试使用浏览器访问目标网站,确认是否可以正常打开。

2. 设置请求头:

  • 除了 User-Agent ,还可以尝试设置其他请求头,使你的请求看起来更像来自浏览器,例如:
    • Accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    • Accept-Language : en-US,en;q=0.5
    • Accept-Encoding : gzip, deflate
    • Connection : keep-alive
  • 示例代码: python headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en-US,en;q=0.5', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'keep-alive' } url = 'http://xxx.jpg' response = requests.get(url, headers=headers) downloadFunction()

3. 降低请求频率:

*  在每次请求之间添加延迟,例如使用 `time.sleep()` 函数,避免过于频繁地访问网站。

4. 使用代理IP:

*  如果网站封禁了你的IP地址,可以使用代理IP发送请求。

5. 联系网站管理员:

*  如果问题持续存在,请联系网站管理员寻求帮助。

注意: 在爬取网站数据时,请务必遵守网站的 robots.txt 文件和服务条款,避免进行任何违法或不道德的行为。

标签:python,python-requests,web-crawler
From: 50771343

相关文章

  • Jupyter Notebook 环境中的 Python 版本不匹配
    我遇到Jupyter笔记本启动横幅中报告的Python版本与我在笔记本中查询python--version时显示的版本之间的差异。启动横幅指示Python3.11.9,但是当我运行!python--version时,它返回Python3.11.7。我所做的步骤:basecondahas3.11.7versio......
  • Python XML 解析:字符串中的“<”被阻塞
    我有一个使用ET.XMLParser来解析CppCheckXML报告文件的Python模块。当尝试解析字符串中包含“<”的XML元素中的属性之一时,它会令人窒息,它会将其解释为格式错误的XML,例如:<errormsg="Includefile<iostream>notfound.">(注意字符和“iostream”之间的空格必须放......
  • 任意几行代码要成为Python中的函数需要什么?
    我正在上一门计算机科学课,我的任务是创建一个程序来实现一个带有参数的函数。我的老师告诉我,下面的代码不是一个函数,这让我很困惑,对于将某些代码行归类为“函数”所需的条件,我感到很困惑。defgame(numbers,max_turns,pfl,tgl):turns=0flag=Falseprint("You......
  • 如何使用 Python 创建新的 Azure 订阅?
    我正在尝试使用PythonSDK以编程方式创建新的Azure订阅。我发现的对AzurePythonSDK的唯一引用是这个这是我最终得到的结果:importazure.mgmt.billingimportazure.mgmt.subscriptioncreds=AzureCliCredential()client_name='test'defcreat......
  • 用于打印脚本输出的 Python 实用程序
    我可以发誓有一个实用程序可以打印一个python脚本,其输出交织在一起。例如,给定一个脚本:a=2b=3print(a+b)print(a*b)该实用程序将输出a=2b=3print(a+b)#>5print(a*b)#>6有人知道该实用程序的名称吗?我最难找到它。谢谢你!描述的实用程序没有标......
  • a method to make some handy tools with python
    Inmyworkingofcomputer,therearealotofsimplejobsthatarefrequentlyrepeated.Itriedtofindawaytomakethesejobbeenprocessedeasily.Method1:Themethodiswritingascripttodothejob,andexecutingthescriptbyutoolsextensionuto......
  • Python网络爬虫详解:实战豆瓣电影信息采集
    文章目录前言一、爬虫是什么?二、常用库及其作用1.Requests2.BeautifulSoup3.lxml4.Scrapy5.Selenium6.PyQuery7.Pandas8.JSON9.Time三、实现步骤步骤一:环境准备步骤二:数据采集步骤三:数据处理步骤四:数据存储总结前言随着互联网的迅猛发展和数据分析需求的不......
  • python学习之内置函数
    Python拥有许多内置函数,这些函数是Python的一部分,不需要额外导入即可直接使用。这些函数提供了对Python解释器功能的直接访问,涵盖了从数学计算到类型检查、从内存管理到异常处理等各个方面。下面是一些常用的Python内置函数及其简要说明:一、Printprint函数大家都不会......
  • Python中以函数为作用域
    点击查看代码#第一题foriteminrange(10):#不报错,没有函数,所有操作在全局作用域里面执行,item最后赋值为:9,此时item在缩进与全局都可以使用passprint(item)#第二题item=10deffunc():foriteminrange(10):#优先在本地查找,找不到在到全局查找p......
  • 掌握IPython宏:%%macro命令的高效使用指南
    掌握IPython宏:%%macro命令的高效使用指南在编程中,宏是一种允许你定义可重用代码片段的强大工具。IPython,这个增强版的Python交互式环境,提供了一个名为%%macro的魔术命令,允许用户创建宏,从而提高代码的可重用性和效率。本文将详细介绍如何在IPython中使用%%macro命令创建宏,并......