web-dev-qa-db-ja.com

Pythonクライアントエラー 'ピアによって接続がリセットされました'

私は非常に小さなpython confluence restful apiにアクセスするクライアントを作成しました。httpsプロトコルを使用してconfluenceに接続しています。Connection reset by peerエラー。完全なスタックトレースを次に示します。

/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Traceback (most recent call last):
  File "wpToConfluence.py", line 15, in <module>
    main()
  File "wpToConfluence.py", line 11, in main
    headers={'content-type': 'application/json'})
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/api.py", line 71, in get
    return request('get', url, params=params, **kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/api.py", line 57, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/adapters.py", line 453, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))

クライアントコードは次のとおりです。

import requests


def main():
    auth = open('/tmp/confluence', 'r').readline().strip()

    username = 'rakesh.kumar'

    response = requests.get("https://<Host-NAME>/rest/api/content/",
                            auth=(username, auth),
                            headers={'content-type': 'application/json'})
    print response

if __name__ == "__main__":
    main()

このスクリプトを仮想環境で実行しており、次のパッケージがその環境にインストールされています。

(wpToConfluence.py)➜  Python pip list
You are using pip version 6.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
appnope (0.1.0)
backports.shutil-get-terminal-size (1.0.0)
decorator (4.0.10)
ipdb (0.10.1)
ipython (5.0.0)
ipython-genutils (0.1.0)
pathlib2 (2.1.0)
pexpect (4.2.0)
pickleshare (0.7.3)
pip (6.1.1)
Prompt-toolkit (1.0.5)
ptyprocess (0.5.1)
Pygments (2.1.3)
requests (2.10.0)
setuptools (25.1.6)
simplegeneric (0.8.1)
six (1.10.0)
traitlets (4.2.2)
urllib3 (1.16)
wcwidth (0.1.7)

pythonバージョン番号について文句を言いますが、Mac/Virtual環境のpythonを更新する方法がわかりません。

私はカールコマンドを試みましたが、Postmanは両方とも与えられたパラメータに対してうまく機能します。

10
Rakesh

requestsライブラリのインストール中、SSL/Https接続に必要な オプションのセキュリティパッケージ ( 'pyOpenSSL'、 'ndg-httpsclient'、および 'pyasn1')のいくつかはスキップされます。このコマンドを実行することで修正できます

pip install "requests[security]"

または

pip install pyopenssl ndg-httpsclient pyasn1
26
Rakesh

上記の回答で提供されているオプションのセキュリティパッケージをすべてインストールしてみました。しかし、何もうまくいかないようでした。

重要なGOTCHAの1つ:URLエンドポイントがプログラムによるアクセスを積極的に妨げているかどうかを確認します。

ウェブサイトのルートディレクトリにあるrobots.txtファイルをご覧ください: http://myweburl.com/robots.txt

次のようなテキストが含まれている場合:User-agent:* Disallow:/

このサイトは気に入らず、スクレイピングを必要としています。これにより、同じ恐​​ろしいエラー54、ピアによるリセットが発生します。

スナップショットは次のとおりです。

https://www.aclibrary.org/robots.txt

ユーザーエージェント:discobot Disallow:/ユーザーエージェント:AddThis.com Disallow:/ユーザーエージェント:Yandex Disallow:/ユーザーエージェント:Baiduspider Disallow:/ユーザーエージェント:Baiduspider-video Disallow:/ User-agent:Baiduspider- image不許可:/ユーザーエージェント:SemrushBot不許可:/ユーザーエージェント:SemrushBot-SA不許可:/ユーザーエージェント:W3C-checklinkクロール遅延:0ユーザーエージェント:Twitterbot不許可:ユーザーエージェント:*クロール遅延: 10不許可:/er.php不許可:/err.php不許可:/go.php不許可:/friendly.php不許可:/ld.php不許可:/srch.phpサイトマップ: https://aclibrary.org /sitemap.xml

1
bhuvanrk