鱼C论坛

 找回密码
 立即注册
查看: 2136|回复: 7

[已解决]关于爬某网站上爬虫报的错

[复制链接]
发表于 2023-7-15 21:11:04 | 显示全部楼层 |阅读模式
10鱼币
有大佬知道这是啥么?咋解决
(Caused by SSLError(SSLEOF Error(8, 'EOF occurred in violation of protocol (_ssl.c:992)')))
最佳答案
2023-7-15 21:11:05
陶远航 发表于 2023-7-15 21:11
这个错误是由 SSLEOF 引起的,它通常表示 SSL 连接意外关闭。该错误可能由以下几种原因引起:

1. SSL 证书 ...

没有代码就只能给你一段gpt的回答了

这个错误表明你的爬虫在尝试连接到服务器时遇到了SSL/TLS协议的问题。这种情况可能是由于服务器配置问题、网络问题、或者你的爬虫尝试使用了服务器不支持的协议版本引起的。以下是一些可能的解决方案:

1. 升级Python:一些老版本的Python在SSL/TLS协议上可能存在问题。升级到Python的最新版本可能会解决这个问题。

2. 升级requests库:如果你在使用requests库,确保它已经升级到最新版本。一些旧版本的requests库可能无法正确处理新版本的SSL/TLS协议。

3. 指定协议版本:尝试更改你的代码以指定SSL/TLS协议的版本。可能你的爬虫正在使用的协议版本服务器不支持,所以需要手动指定一个服务器支持的版本。这需要用到 ssl 模块,例如:
import requests
import ssl

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager

class TLSAdapter(HTTPAdapter):
    def init_poolmanager(self, connections, maxsize, block=False):
        self.poolmanager = PoolManager(num_pools=connections,
                                       maxsize=maxsize,
                                       block=block,
                                       ssl_version=ssl.PROTOCOL_TLSv1_2)

s = requests.Session()
s.mount('https://', TLSAdapter())
response = s.get('https://www.example.com')

4. 禁用SSL验证:如果以上方法都不行,你可以考虑禁用SSL验证。但这样做将使你的连接不安全,不推荐在生产环境下使用。以下是在requests库中如何禁用SSL验证的例子:
import requests

response = requests.get('https://www.example.com', verify=False)

请注意,这只是最后的手段,因为禁用SSL验证将使你的连接对中间人攻击变得易受攻击。

最佳答案

查看完整内容

没有代码就只能给你一段gpt的回答了 这个错误表明你的爬虫在尝试连接到服务器时遇到了SSL/TLS协议的问题。这种情况可能是由于服务器配置问题、网络问题、或者你的爬虫尝试使用了服务器不支持的协议版本引起的。以下是一些可能的解决方案: 1. 升级Python:一些老版本的Python在SSL/TLS协议上可能存在问题。升级到Python的最新版本可能会解决这个问题。 2. 升级requests库:如果你在使用requests库,确保它已经升级到最 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-15 21:11:05 | 显示全部楼层    本楼为最佳答案   
陶远航 发表于 2023-7-15 21:11
这个错误是由 SSLEOF 引起的,它通常表示 SSL 连接意外关闭。该错误可能由以下几种原因引起:

1. SSL 证书 ...

没有代码就只能给你一段gpt的回答了

这个错误表明你的爬虫在尝试连接到服务器时遇到了SSL/TLS协议的问题。这种情况可能是由于服务器配置问题、网络问题、或者你的爬虫尝试使用了服务器不支持的协议版本引起的。以下是一些可能的解决方案:

1. 升级Python:一些老版本的Python在SSL/TLS协议上可能存在问题。升级到Python的最新版本可能会解决这个问题。

2. 升级requests库:如果你在使用requests库,确保它已经升级到最新版本。一些旧版本的requests库可能无法正确处理新版本的SSL/TLS协议。

3. 指定协议版本:尝试更改你的代码以指定SSL/TLS协议的版本。可能你的爬虫正在使用的协议版本服务器不支持,所以需要手动指定一个服务器支持的版本。这需要用到 ssl 模块,例如:
import requests
import ssl

from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager

class TLSAdapter(HTTPAdapter):
    def init_poolmanager(self, connections, maxsize, block=False):
        self.poolmanager = PoolManager(num_pools=connections,
                                       maxsize=maxsize,
                                       block=block,
                                       ssl_version=ssl.PROTOCOL_TLSv1_2)

s = requests.Session()
s.mount('https://', TLSAdapter())
response = s.get('https://www.example.com')

4. 禁用SSL验证:如果以上方法都不行,你可以考虑禁用SSL验证。但这样做将使你的连接不安全,不推荐在生产环境下使用。以下是在requests库中如何禁用SSL验证的例子:
import requests

response = requests.get('https://www.example.com', verify=False)

请注意,这只是最后的手段,因为禁用SSL验证将使你的连接对中间人攻击变得易受攻击。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-15 21:11:26 | 显示全部楼层
这个错误是由 SSLEOF 引起的,它通常表示 SSL 连接意外关闭。该错误可能由以下几种原因引起:

1. SSL 证书问题:爬虫请求的网站可能存在 SSL 证书问题,例如证书过期、不受信任的证书等。这可能导致 SSL 连接失败。你可以尝试更新证书或添加信任的根证书。

2. 客户端和服务器之间的协议不匹配:客户端和服务器之间的 SSL/TLS 协议版本不兼容,导致连接关闭。你可以尝试将 SSL 库配置为使用更旧或更新的协议版本。

3. 代理问题:如果你在爬虫中使用了代理,可能是代理服务器出现了问题,导致连接关闭。你可以尝试更换代理或与代理提供商联系以获得支持。

为了解决这个问题,你可以尝试以下几个步骤:

1. 检查 SSL 证书:确保你的爬虫请求的网站使用的是有效的、受信任的 SSL 证书。你可以通过网页浏览器手动访问网站,检查浏览器是否显示有关证书的任何警告或错误信息。

2. 更新 SSL 库:确保你的 Python 环境中的 SSL 库已经更新到最新版本。你可以尝试升级或重新安装 OpenSSL 或其他相关的库。

3. 调整 SSL/TLS 协议版本:如果服务器不支持默认的协议版本,你可以尝试在爬虫代码中指定使用其他协议版本。具体的实现方法会根据你使用的爬虫框架和库而不同。

4. 检查代理设置:如果你正在使用代理,确保代理服务器正常工作,并且与代理提供商联系以解决问题。

5. 联系网站管理员:如果以上方法都没有解决问题,你可以尝试联系网站管理员,询问是否有特殊的访问要求或限制,或者报告问题并寻求他们的帮助。

需要注意的是,在使用爬虫时,请遵守网站的使用条款和服务协议,并尊重网站的访问频率限制。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-15 21:12:05 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-15 21:13:11 | 显示全部楼层
代码方便放上来吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-15 22:41:01 | 显示全部楼层
代码呢???????????????、、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-16 14:45:10 | 显示全部楼层
isdkz 发表于 2023-7-15 22:20
没有代码就只能给你一段gpt的回答了

这个错误表明你的爬虫在尝试连接到服务器时遇到了SSL/TLS协议的问 ...

多谢,貌似加了个verify=False就减少了出现的情况(上面那个没啥用)
加了个递归重复尝试就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-17 16:11:32 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表