【Python】SSL接続で警告されるへのスクレイピング

【Python】SSL接続で警告されるへのスクレイピング
2018年2月8日

前回はBasic認証がかかっているページにWEBスクレイピングする方法を紹介しました。

 

「この接続ではプライバシーが保護されません」が表示される

今度は別の複合機もよろしくと言われ、同じようにブラウザから管理画面へアクセスしてみると。

ブラウザが警告を出してきた。

SSLの警告
Chromeでの画面です

SSL通信を行う際のSSLサーバー証明書の警告が出ている。

ブラウザでは例外設定するなり、安全でないことを踏まえたうえ強引にアクセスするとページが表示できる。

 

Pythonでのスクレイピング処理はどうかな。

【Python】WEBスクレイピングをしてみようで使ったソースコードで処理をかけてみた。

なんかエラーっぽいのが表示されている。

pythonエラー表示

requests.exceptions.SSLError: HTTPSConnectionPool

どうやら証明書のエラーでPythonの処理が止まってしまったみたい。

 

証明書の警告を無視しよう

ページにアクセスしても特に問題がないので、警告を無視して処理してしまおう。

(社内でかつ、ローカルネットワークだからこそ出来る。社外では絶対やりたくない!)

 

調べたらすぐに出てきました。

頼りになるのは同じ悩みを持つ同士達ですね。

res = requests.get('https://対象URL',verify=False)

Basic認証の時と同じようにアクセスするURLを設定している後ろにverify=Falseを追加するだけ。

これでスクレイピングが可能になりました。

証明書の警告無視スクレイピング

警告だけは毎回出てしまうが、それでも処理は可能になりました。

警告は消せた

追記:2018.2.28

urllib3のexceptionsを読み込んでdisable_warningsを読んでいれば警告を非表示にすることができた。

import requests
import urllib3
from urllib3.exceptions import InsecureRequestWarning
urllib3.disable_warnings(InsecureRequestWarning)

res = requests.get('https://対象URL',verify=False)

これで毎回警告を見なくて済みそうだ。

警告を消すには確実に安全な接続先だけに設定することをお勧めします。