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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

プロキシ

プロキシは、二つ以上の相互接続されているプログラム又はデバイスの間に存在する中間サーバを指します。プロキシは、接続者の「代理」としてインターネット接続を行い、接続元にレスポンスを返します。また、その機能を実現するソフトウェアの意味合いもあります。

Q&A

1回答

3600閲覧

HTMLを取得できない

dokidoki_hamuo

総合スコア38

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

プロキシ

プロキシは、二つ以上の相互接続されているプログラム又はデバイスの間に存在する中間サーバを指します。プロキシは、接続者の「代理」としてインターネット接続を行い、接続元にレスポンスを返します。また、その機能を実現するソフトウェアの意味合いもあります。

0グッド

0クリップ

投稿2019/08/01 06:10

編集2022/01/12 10:55

質問

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

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

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

windows10
python 3.7.3

対象のコード(修正)

python

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

エラー(修正)

python

1Traceback (most recent call last): 2 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 3 (self._dns_host, self.port), self.timeout, **extra_kw) 4 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 5 raise err 6 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 7 sock.connect(sa) 8TimeoutError: [WinError 10060] 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。 9

追記試したこと

SSL認証・プロキシ設定

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

python

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

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

python

1Traceback (most recent call last): 2 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 3 self._prepare_proxy(conn) 4 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 5 conn.connect() 6 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 7 ssl_context=context) 8 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 9 return context.wrap_socket(sock, server_hostname=server_hostname) 10 File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 412, in wrap_socket 11 session=session 12 File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 853, in _create 13 self.do_handshake() 14 File "C:\Users\userid123\AppData\Local\Programs\Python\Python37\lib\ssl.py", line 1117, in do_handshake 15 self._sslobj.do_handshake() 16ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1056) 17

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

python

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

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

python

1Traceback (most recent call last): 2 File "<pyshell#5>", line 1, in <module> 3 res = requests.get('http://nostarch.com',context=context) 4 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 5 return request('get', url, params=params, **kwargs) 6 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 7 return session.request(method=method, url=url, **kwargs) 8TypeError: request() got an unexpected keyword argument 'context'

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2019/08/01 06:33

タイトルと質問内容が合ってないようです。タイトルを変更するのがいいと思います。(ソースからは、まだhtmlを獲得できてないようにしか見えません)
quickquip

2019/08/01 06:36

SSL認証エラーだったようでした の部分はまったく疑わしく思えます。 変更する前のソースと、そのソースで発生するエラーの方が、必須な気がします。
dokidoki_hamuo

2019/08/01 06:39

ご回答ありがとうございます!! 一度変更するまえのソースをあげて、今のものは消して、タイトルも訂正いたします。 不適切な質問内容にしてしまい、失礼いたしました。
quickquip

2019/08/01 06:59

再現できませんでした。(import requests ; res = requests.get('http://nostarch.com') で問題なく取得できます)。 ソースの問題ではなくて、ネットワーク環境の話になってしまいますね。 あるいは、たまたま1回だけ失敗したということはないでしょうか。
quickquip

2019/08/01 07:03

プロキシ設定を試してみたという話ですが、どう設定しましたか? そもそもプロキシが必要な環境で作業をしているのですか? (だとしたらそのような情報をなぜ伏せるのですか?) サーバ名などは伏せて構いませんので「具体的に何をしたか?」が必要だと思います。
dokidoki_hamuo

2019/08/01 07:07

プロキシ情報を伏せたのは、以前こちらでプロキシの質問をした際にご回答くださった方のサイトを参考にやってみたら、その時問題なくできました。それで今回もその時と同じようにやったので、特にそのコードに問題があると判断しなかったため、のせませんでした。 すみません、一応のせてみますね!! もしよろしければ見てもらえればと思います。
quickquip

2019/08/01 07:26 編集

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

2019/08/01 07:31

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

2019/08/01 12:36

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

回答1

0

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

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

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

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

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

投稿2019/08/01 09:01

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問