環境
- Windows 10
- Python 3.10.1
結論
urllibモジュールのrequest.urlopenメソッドを使用する
実装
呼び出し側
- urlオブジェクトを作成し、それをCheckIsValidUrlServiceに渡す
tests\test_check_is_valid_url_service.py
from shared.Application.check_is_valid_url_service import CheckIsValidUrlService
from shared.Domain.xurl import XUrl
def test_任意のurlが有効かどうかチェックできること():
x_url = XUrl("https://maasaablog.com/")
is_valid_url = CheckIsValidUrlService().execute(xurl=x_url)
assert is_valid_url == True
def test_無効なurlの場合はFalseを返すこと():
x_url = XUrl("https://hfefejjekfogehoge.com/")
is_valid_url = CheckIsValidUrlService().execute(xurl=x_url)
assert is_valid_url == False
- urlオブジェクトを受け取り、try節でurlを開く
- 無効なurlの場合は例外が生じるので、これを受けてFalseを返す
shared\Application\check_is_valid_url_service.py
import urllib.request, urllib.error
from shared.Domain.xurl import XUrl
class CheckIsValidUrlService:
def execute(self, xurl: XUrl):
try:
f = urllib.request.urlopen(xurl.get_href())
return True
except:
print(f"{xurl.get_href()}は無効なurlです")
return False
finally:
if "f" in locals():
f.close()
以上です
まとめ
いかがでしたでしょうか。本記事では、Pythonで任意のURLリンクが有効かどうかをチェックする方法について紹介しています。ぜひ参考にしてみてください