使用python请求获取('Connection aborted。',OSError(0,'Error')错误)

时间:2019-08-27 09:51:46

标签: python python-requests urllib

我正在尝试编写代码以登录网站。
首先,我使用ARC进行了测试。工作正常。 Image

所以我写了这样的python代码:

0 represent!
1 represent!
2 represent!
3 represent!
4 represent!
[0, 1, 2, 3, 4]

但是我遇到了错误。

错误

import requests


url = 'https://www.bible.ac.kr/login.aspx/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko',
    'Referer': 'http://www.bible.ac.kr/'
}


req = requests.get(url, headers=headers) # OR requests.get(url, headers=headers, verify=False)

print(req.status_code)

我很久没有解决这个问题了。
仅当我运行Fiddler时,代码才能正常工作。我不知道原因
即使尝试使用C语言,该网站仍然出现错误。
您可以仅使用Python解决此问题吗?

2 个答案:

答案 0 :(得分:1)

我使用OPENSSL 1.0.1f解决了这个问题。

该域仅支持TLS 1.0,SSLv2和SSLv3。这些协议已经过时,很少使用。因此,我怀疑OPENSSL 1.1.1系列的兼容性。结果,使用openssl版本1.0.1f解决了该问题。但是,在Python中使用较旧的openssl可能需要额外的工作。

我的英语不太好,但是希望能帮上忙。

答案 1 :(得分:0)

您是否尝试过使用try / except?

while statuscode != 200:
    response = 0
    try:
        response = requests.get(url, params, timeout=7)
    except (
        requests.ConnectionError,
        requests.exceptions.ReadTimeout,
        requests.exceptions.Timeout,
        requests.exceptions.ConnectTimeout,
    ) as e:
        statuscode = 0
        print(e)
    if response:
        statuscode = response.status_code

有趣的是,我发现只有在响应为200时才输入“如果响应”,我不知道为什么,但我不是在抱怨,哈哈!