リダイレクトのテスト
概要
現URLへアクセスし、リダイレクト先のリストと、要望されているリダイレクト先のリストを突き合わせて、正しいか判別します。
目的
ウェブページのリダイレクト変更テストを行う際、スプレッドシートで確認できますが、10や100にもなると、作業量は増え生産性は落ちてしまいます。
そこで、Pythonさんに活躍してもらおうと、勉強を兼ねて作成しました。
成果物
# -*- coding: utf-8 -*-
import requests
#アクセスするURL
urls = ["https://qiita.com/logout/"
,"https://yahoo.co.jp"]
#*リダイレクト先の正しいURL*(架空)
reurls =['https://qiita.com/mypage/',
'https://www.yahoo.co.jp/']
#リダイレクト時のURLを格納するリスト
newurl = []
def match():
for url in urls:
r = requests.get(url)
# ステータスを格納
status = r.status_code
# 新しいURLを格納
redirect_url = r.url
# リダイレクトの履歴を格納
redirect_status = r.history
# テストのため出力
print(status)
print(redirect_url)
print(redirect_status)
# newurl のリストに入れる
newurl.append(redirect_url)
if reurls == newurl:
print("リダイレクトは完全一致")
else:
for i in range(len(reurls)):
if reurls[i] != newurl[i]:
print("問題は " + urls[i] + " です")
if __name__ == '__main__':
match()
これを実行した場合、
問題は https://qiita.com/logout/ です
と表示されます。
対象となるURLが増えたときには有効なスクリプトかと思います。
もっときれいな書き方があるんだろうな、と思いながらも、
割とすんなりできたのでとても嬉しいです。