PythonでURLを解析する

PythonでURL文字列をパースします。URLからディレクトリ部分を取り出したいときなどに便利です。

目次

  1. urllib.parse.urlparseメソッドでパースする
  2. 試してみた

urllib.parse.urlparseメソッドでパースする

URL文字列を6つの要素に分割します。

import urllib.parse

res = urllib.parse.urlparse(urlstring, [scheme], [allow_fragments])
変数 内容
urlstring string URLを表す文字列。
scheme string 省略可。規定値は""。プロトコルの指定。
allow_fragments bool 省略可。規定値はTrue。フラグメントを解釈するかどうか。
ret ParseResult パースした結果を反映したParseResultオブジェクト。

戻り値はParseResultクラスのオブジェクトです。

ParseResultクラスのプロパティは下表です。

プロパティ 内容
scheme URLスキーム。
netloc ネットワーク上の場所。
path パス。
params パラメータ。
query クエリ。
fragment フラグメント。
username ユーザー名。
password パスワード。
hostname ホスト名。
port ポート番号。

試してみた

適当なURLをパースしてみます。

>>> import urllib.parse

>>> ret = urllib.parse.urlparse('http://www.sample.com:80/dir?page=1#header1')

>>> ret
ParseResult(scheme='http', netloc='www.sample.com:80', path='/dir', params='', query='page=1', fragment='header1')

>>> ret.scheme
'http'

>>> ret.netloc
'www.sample.com:80'

>>> ret.path
'/dir'

>>> ret.params
''

>>> ret.query
'page=1'

>>> ret.fragment
'header1'

>>> ret.username

>>> ret.password

>>> ret.hostname
'www.sample.com'

>>> ret.port
80
>>>

netlocにはポート番号が含まれるんですね。

広告

Pythonカテゴリの投稿