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

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

新規登録して質問してみよう
ただいま回答率
85.35%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Python 3.x

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

SSL

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1029閲覧

pythonでのSSLError

IT_hippie

総合スコア4

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Python 3.x

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

SSL

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/06 02:36

編集2020/04/06 04:55

前提・実現したいこと

去年の年末に、Python3.7.3を使って特定サイトのスクレイピングを実行するプログラムを実装して、たまに使用していたのですが、今月に入ってから以下のようなエラーが出るようになり、ウェブサイトにアクセスできなくなりました
ーーー
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(...
...(Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))
ーーー
エラーの内容からSSLモジュールがうまく動いていなかったのは分かったので、
requests.get(url,verify=False)のようにfalseを追加したのですが、全く機能していません
そもそも今まではこのような追加設定なしでデフォルトで機能していたので、何が原因かうまく考えつきません

どうか皆様のお力をお貸しいただけないでしょうか

情報
requests 2.22.0
urllib3 1.25.2
certifi 2019.3.9
pyOpenSSL,cffiは確認できない状況

追加情報2
pipを使用した時の表示
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

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

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

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

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

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

tiitoi

2020/04/06 02:40 編集

OS のアップデートや Python のバージョンを変更するなどしましたか? Python が要求する SSL のライブラリとパソコンにインストールされているライブラリがマッチしていない可能性があります。
quickquip

2020/04/06 02:53

OS、Pythonはどのようにビルドしたものか、requests,urllib3,certifi,pyOpenSSL,cffiあたりの各パッケージのバージョン、https:// ではじまるすべてのサイトでエラーになるのかそうでないのか、あたりの情報が必要かと思います。
IT_hippie

2020/04/06 02:59

>tiitoiさん OSのアップデートは二月入ったあたりで一度実行してます →macOS Catalina ver10.15.4 Pythonのバージョンは特に変更はしておらず、ずっと3.7.3です! ライブラリのマッチしていないは確かにありそうです、、、
IT_hippie

2020/04/06 03:06

>quiquiさん MAC OSでMACないのPython環境を3.7.3にアップデートして使用しています https:// ではじまるすべてのサイトでエラーになっている状況です requests,urllib3,certifi,pyOpenSSL,cffiあたりの各パッケージのバージョンは requests 2.22.0 urllib3 1.25.2 certifi 2019.3.9 pyOpenSSL,cffiは確認できていない状況です。。。
IT_hippie

2020/04/06 03:08 編集

pyOpenSSLは最新版をローカルにダウンロードしているのですが、PIPが動かないためインストールできない状況になってます、、、
quickquip

2020/04/06 03:28

> MAC OSでMACないのPython環境を3.7.3にアップデートして Catalinaの標準(/usr/bin/python3)が3.7.3のはずですが、「アップデートして」はどういう意味でしょう? 「何を」「どうやって」入れたのか具体的にどうぞ。 あと情報をこの欄に追記しないでください。質問を編集するようにしましょう。
tiitoi

2020/04/06 03:36 編集

表題のエラーとは異なりますが、以前の質問 https://teratail.com/questions/230231 でやり取りした方も Mac OS で SSL モジュールが利用できないということだったのですが、原因としてはパソコンにインストールされている openssl のライブラリが OS のアップデート等でバージョンが変わってしまうと、利用できなくなるという事があるようです。 Python 3.7 時点でサポートしている openssl がバージョン 1.1.0 なので、もし違うバージョンの場合は、インストールしなおすと直るかもしれません。 https://docs.python.org/ja/3/library/ssl.html Updated to support linking with OpenSSL 1.1.0 Mac は持っていないので、詳しくないのですが、brew 等でバージョン1.1の openssl を再インストールしてみてはどうでしょうか brew update brew install openssl@1.1
IT_hippie

2020/04/06 04:54

>quiquiさん Catalinaに更新前(MACを購入直後)はPython2.7しか入ってなかったため、3.7.3をターミナルからコマンドで追加したので、Catalinaから標準になっていたのは知らなかったです ご指摘ありがとうございます
IT_hippie

2020/04/06 04:55

>tiitoiさん opensslのバージョンはすでに1.1になっているようでした、、、 念の為コマンドを入力したのですが、変わらずな状況です。。。。
quickquip

2020/04/06 04:58

> Catalinaに更新前(MACを購入直後)はPython2.7しか入ってなかったため、3.7.3をターミナルからコマンドで追加したので、Catalinaから標準になっていたのは知らなかったです ここを整理してください。 時系列は Catalina以前に3.7.3をインストール→Catalinaへの更新 ですか? そのインストールは「どこから」「なにを入手して」「どうやって」やりましたか? それが不明なようでしたらそのように書きましょう。そうであれば、あなたが使っているPythonの正体をどうやって突き止めるか? から回答が始まることになりますから。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問