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にはポート番号が含まれるんですね。

公開日

広告