Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonで任意のURLリンクが有効かどうかをチェックする方法

Pythonで任意のURLリンクが有効かどうかをチェックする方法

公開日

環境

  • 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リンクが有効かどうかをチェックする方法について紹介しています。ぜひ参考にしてみてください