質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.34%

HTMLを取得できない

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,692

dokidoki_hamuo

score 24

質問

オライリージャパンから出ている書籍の例文をそのまま打ち込んだのですがエラーになります。

SSL認証エラー・プロキシ設定、一応試してみたのですが、うまく作動せずほかの原因を調べてみましたがわかりませんでした。

このエラーの原因がお分かりの方ご回答いただけると助かります。

windows10 
python 3.7.3

対象のコード(修正)

import requests,os,bs4,ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
res = requests.get('http://nostarch.com')#ここを実行したらエラー

エラー(修正)

Traceback (most recent call last):
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connection.py", line 160, in _new_conn
    (self._dns_host, self.port), self.timeout, **extra_kw)
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\util\connection.py", line 80, in create_connection
    raise err
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\util\connection.py", line 70, in create_connection
    sock.connect(sa)
TimeoutError: [WinError 10060] 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

追記試したこと

SSL認証・プロキシ設定

追記---プロキシ設定のコード

import requests,os,bs4,ssl
proxies = {
http': 'http://000.00.00.000:12345',
https': 'http://000.00.00.000:12345',
}
res = requests.get('http://nostarch.com', proxies=proxies)#ここを実行したらエラー

追記--プロキシ設定エラー

Traceback (most recent call last):
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 597, in urlopen
    self._prepare_proxy(conn)
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connectionpool.py", line 807, in _prepare_proxy
    conn.connect()
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\connection.py", line 370, in connect
    ssl_context=context)
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\urllib3-1.25.3-py3.7.egg\urllib3\util\ssl_.py", line 355, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 412, in wrap_socket
    session=session
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 853, in _create
    self.do_handshake()
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 1117, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056)

追記---SSL認証した場合のコード

import requests,os,bs4,ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
res = requests.get('http://nostarch.com',context=context)#ここでエラー

追記---SSL認証した時のエラー

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    res = requests.get('http://nostarch.com',context=context)
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\requests-2.22.0-py3.7.egg\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\site-packages\requests-2.22.0-py3.7.egg\requests\api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
TypeError: request() got an unexpected keyword argument 'context'
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • quickquip

    2019/08/01 16:26 編集

    結局プロキシ経由で接続かつ利用者認証が必要な環境ということで合っていますか?
    その認証情報が設定されてないということのような気がしましたが、そういう環境はこちらにないので私はここまででしょうかね。

    キャンセル

  • dokidoki_hamuo

    2019/08/01 16:31

    何度もご回答いただき本当にありがとうございます。
    >>結局プロキシ経由で接続かつ利用者認証が必要な環境ということで合っていますか?
    おそらくそうだと思います。自動構成スプリクトでpacファイルが提示されていました。

    ここまでご回答にお付き合いいただきありがとうございました。

    キャンセル

  • meg_

    2019/08/01 21:36

    プロキシ設定の「http'」「https'」の先頭の'が抜けているのは、コピペのミスですか?

    ユーザー認証付きのプロキシ環境だと「'http://user:password@proxy_host:port&#039;」のようになります。暗号化もプロキシが行っていませんか? 会社であればネットワーク管理者に確認するのが良いです。(セキュリティーが強化されて以前と設定が変わっている可能性もあります)

    キャンセル

回答 1

0

context=contextが直接のエラー原因で、この場合はそもそもcontextという引数を受け取らないのだと思いますが、何を思ってこう書いたのでしょうか。

urllib.request.urlopenの記事とかを見たのかもしれませんが、requestsは「別物」なので対応していません。

pythonでAPIを叩いた時にSSL認証エラーでハマったときの対処法 - Qiita

参考にするのであれば、こっちとかを。

Python requests で SSLError が起きて毎回ググってるのでまとめた - Qiita

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る