質問編集履歴

7

修正

2021/06/16 02:20

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  追記です。
44
44
 
45
- ``requests.get``を使用せずに、以下の関数を作成し、https化されておらず、アクセスすると404が出力されるページに対しリクエストを送ってみた所`` except ssl.SSLError:``こちらの例外は捕捉されず、``print("ステータスコード: ", response.status_code)``こちらの行が出力され、「404」と表示されました。
45
+ ``requests.get``を使用せずに、以下の関数を作成し、https化されていないページに対しリクエストを送ってみた所`` except ssl.SSLError:``こちらの例外は捕捉されず、``print("ステータスコード: ", response.status_code)``こちらの行が出力され、「404」と表示されました。
46
46
 
47
47
  ```
48
48
 

6

追記

2021/06/16 02:19

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  追記です。
44
44
 
45
- ``requests.get``を使用せずに、以下の関数を作成し、https化されていないページに対し、リクエストを送ってみた所、`` except ssl.SSLError:``こちらの例外は捕捉されず、``print("ステータスコード: ", response.status_code)``こちらの行が出力され、「404」と表示されました。
45
+ ``requests.get``を使用せずに、以下の関数を作成し、https化されておらず、アクセスすると404が出力されるページに対し、リクエストを送ってみた所、`` except ssl.SSLError:``こちらの例外は捕捉されず、``print("ステータスコード: ", response.status_code)``こちらの行が出力され、「404」と表示されました。
46
46
 
47
47
  ```
48
48
 

5

追記

2021/06/16 02:12

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
  追記です。
44
44
 
45
- ``requests.get``を使用せずに、以下の関数を作成し、https化されていないページに対し、リクエストを送ってみた所、``print("ステータスコード: ", response.status_code)``こちらの行「404」の返却が行われました
45
+ ``requests.get``を使用せずに、以下の関数を作成し、https化されていないページに対し、リクエストを送ってみた所、`` except ssl.SSLError:``こちらの例外は捕捉されず、``print("ステータスコード: ", response.status_code)``こちらの行が出力され、「404」と表示されました
46
46
 
47
47
  ```
48
48
 

4

追記

2021/06/16 02:09

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
@@ -37,3 +37,111 @@
37
37
  その為、あるページがSSL化されているかどうかをもう少し正確にチェックしたいと考えています。
38
38
 
39
39
  他に方法などありましたら、ご助言頂けましたら幸いです。
40
+
41
+
42
+
43
+ 追記です。
44
+
45
+ ``requests.get``を使用せずに、以下の関数を作成し、https化されていないページに対し、リクエストを送ってみた所、``print("ステータスコード: ", response.status_code)``こちらの行で「404」の返却が行われました
46
+
47
+ ```
48
+
49
+ def check_ssl_certification(targetURL, waitsec_from=1, waitsec_to=3):
50
+
51
+ err_msg = {}
52
+
53
+ headers = {
54
+
55
+ "User-Agent": (
56
+
57
+ "Mozilla/5.0 (X11; Linux x86_64; rv:57.0)" "Gecko/20100101 Firefox/57.0"
58
+
59
+ )
60
+
61
+ }
62
+
63
+ session = requests.Session()
64
+
65
+
66
+
67
+ # retries = Retry(total=1, # リトライ回数
68
+
69
+ # backoff_factor=1, # sleep時間(リトライするごとに待機時間を指定した秒数加算する)
70
+
71
+ # status_forcelist=[500, 502, 503, 504],raise_on_status=False)
72
+
73
+ # timeout以外でリトライするステータスコード
74
+
75
+ """
76
+
77
+ Session.mount(prefix, adapter) はこのセッションで行う URL が prefix で始まる HTTP 通信に対して、
78
+
79
+ アダプター adapter を設定する関数。
80
+
81
+ prefix="https://" の場合、URL が https:// で始まるすべての通信が対象
82
+
83
+ """
84
+
85
+ # session.mount("https://", HTTPAdapter(max_retries=retries))
86
+
87
+ # session.mount("http://", HTTPAdapter(max_retries=retries))
88
+
89
+ try:
90
+
91
+ # print('ok')
92
+
93
+ response = session.get(
94
+
95
+ url=targetURL, headers=headers, stream=True, timeout=(20.0, 30.0)
96
+
97
+ )
98
+
99
+ except ssl.SSLError:
100
+
101
+ print("SSL認証エラー")
102
+
103
+
104
+
105
+ except requests.exceptions.ConnectTimeout:
106
+
107
+ print("タイムアウトしました。")
108
+
109
+ err_msg["connection_timeout"] = "ホストへの接続に失敗しました。"
110
+
111
+ except requests.exceptions.ConnectionError as e:
112
+
113
+ print("ホストが見つかりませんでした(https)", e)
114
+
115
+ err_msg["no_host"] = "ホストが見つかりませんでした。"
116
+
117
+ return response
118
+
119
+
120
+
121
+ # HTTP ステータスコードが 4xx と 5xx の場合は urllib.error.HTTPError 例外が投げられる
122
+
123
+ except requests.exceptions.HTTPError as e:
124
+
125
+ print(e.response.status_code)
126
+
127
+ # except requests.exceptions.RetryError:
128
+
129
+ # print('再試行制限に到達しました')
130
+
131
+ except requests.exceptions.ReadTimeout as e:
132
+
133
+ print("requests.exceptions.ReadTimeoutエラー : ", e)
134
+
135
+ except requests.exceptions.TooManyRedirects as e:
136
+
137
+ print("エラー: ", e)
138
+
139
+ else:
140
+
141
+ print("ステータスコード: ", response.status_code)
142
+
143
+ return response
144
+
145
+ return err_msg
146
+
147
+ ```

3

タグ追加

2021/06/16 01:59

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
File without changes

2

本文修正

2021/06/15 03:50

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  ```
34
34
 
35
- こちらのコードの問題点ですが、``https://``から始まるページへアクセスし返ってきたステータスコードが仮に``500``番台であった場合はSSL化されていないのではなく、サーバーエラーなどでサーバーが落ちてしまっているだけであり、実際はSSL化されている可能性は十分にあるということです。
35
+ こちらのコードの問題点ですが、``https://``から始まるページへアクセスし返ってきたステータスコードが仮に``500``番台であった場合はSSL化されていないのではなく、サーバーエラーなどでサーバーが落ちてしまっているだけであり、実際はSSL化されている可能性は十分にあるというです。
36
36
 
37
37
  その為、あるページがSSL化されているかどうかをもう少し正確にチェックしたいと考えています。
38
38
 

1

本文修正

2021/06/15 03:49

投稿

jjj001
jjj001

スコア55

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  現在、サイトのあるページがHTTPS化されているかどうかをチェックするプログラムを作成しています。
2
2
 
3
- 自分は一度以下のような形で試してみたのですが、ある疑問点にぶつかり方法を探している状況です。
3
+ 自分は一度以下のような形で試してみたのですが、ある疑問点にぶつかり他の方法を探している状況です。
4
4
 
5
5
  ※``input_url ``は入力フォームから受け取ったURLになります。
6
6