【问题标题】:Issue with request(get)请求问题(获取)
【发布时间】:2021-10-15 13:14:46
【问题描述】:

我在向website 发送请求时遇到问题。我正在使用“hentai”库在 Python 上使用 nhentai API 制作一个有用的电报机器人(请不要判断)。为什么在 Linux (Ubuntu) 上会出现此错误?

:~$ curl -v https://nhentai.net
* Expire in 0 ms for 6 (transfer 0x55c3a8516530)
  ...
* Expire in 9 ms for 1 (transfer 0x55c3a8516530)
*   Trying 104.27.195.88...
* TCP_NODELAY set
* Expire in 149985 ms for 3 (transfer 0x55c3a8516530)
* Expire in 200 ms for 4 (transfer 0x55c3a8516530)
* Connected to nhentai.net (104.27.195.88) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to nhentai.net:443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to nhentai.net:443

【问题讨论】:

  • 是不是证书过期了?看看这个post
  • @AloneTogether:curl 甚至还没有收到验证证书,所以这不是问题。错误信息也明显不同于其他帖子中的问题。

标签: python python-3.x ssl python-requests openssl


【解决方案1】:

我的猜测是中间有一些东西,例如本地防病毒软件或家长控制软件或某些公司/学校中间盒/防火墙,它们不喜欢您尝试访问的网站的名称。

您看到的是典型的 DPI 解决方案,它允许初始 TCP 连接,但一旦检测到您要连接的域名(包含在 TLS 握手 ClientHello 中)就会导致连接关闭

【讨论】:

  • 我明白了。我会尝试将 -GET 请求发送到同一个域,但在另一台服务器上检查它是否是防火墙/安全或其他原因,谢谢!
  • 谢谢!我猜这是ubuntu设置或安全/防火墙/等的原因。我用谷歌搜索了这个问题,很多人说它的原因是密码什么的。就像 nhentai 网站在服务器中使用旧密码或类似的东西。我在另一台服务器(heroku)上测试了代码,它运行良好!顺便说一句,我会把它保存在 heroku 中,但我想知道这个问题的原因。你不知道原因吗?提供者:netangels.ru
  • @Ulxn:不幸的是,仅提及提供商并不能帮助您了解您的设置。但鉴于您的客户端尝试使用 TLS 1.3,这意味着它使用的是现代 TLS 堆栈。您要达到的目标是 Cloudflare 背后,它也有一个现代 TLS 堆栈,它也被配置为接受更广泛的新旧 TLS 客户端。因此密码问题不太可能出现,并且服务器证书也已正确设置。
【解决方案2】:

我在您提到的网站上尝试了 curl 和 python 的请求库,并提取了所需的内容。确保你的 linux 机器上的 curl 工作正常。如果你愿意,你可以试试下面的简单代码。

import requests

myrequest = requests.get("https://nhentai.net/")

print(myrequest.text)

【讨论】:

  • 输出:raise ConnectionError(err, request=request) \ requests.exceptions.ConnectionError: ('Connection aborted.', OSError(0, 'Error')) 我猜是服务器有问题或者有某种安全/防火墙/站点黑名单阻止 nhentai.net。因为对 nhentai.net 的请求在另一台服务器(heroku)中运行良好
  • 我同意。我提出了几个要求,他们都成功了。但后来服务器没有响应我的请求。
猜你喜欢
  • 2018-12-26
  • 2020-05-31
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 2017-04-01
  • 2018-02-11
  • 2021-03-20
  • 2018-09-25
相关资源
最近更新 更多