PythonでURLを解析する
PythonでURL文字列をパースします。URLからディレクトリ部分を取り出したいときなどに便利です。
目次
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カテゴリの投稿
- PythonからWindows RuntimeのAPIを使ってみる
 - Pythonから外部のアプリケーションを実行する
 - PythonでApacheのログを読む
 - PythonでURLを結合する
 - PythonでURLを解析する
 - Pythonでtar.gzなファイルを解凍(展開)する
 - Pythonでwavファイルを書き出す
 - Pythonでwavファイルを読み込む
 - Pythonでデータを整形して出力する
 - Pythonでハミング窓関数を作る(SciPy編)
 - Pythonでブール値を数値に変換する
 - Pythonでモジュールをインポートする
 - Pythonで数値を比較する
 - Pythonで文字の内容から真偽値の判定をする
 - Pythonで自前の関数を定義する
 - Pythonで論理演算する
 - Pythonのprint関数で改行せずに出力する
 - Pythonのプログラムを終了する
 - Pythonの関数には参照を渡す
 - Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
 - Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
 - reStructuredTextの表
 - ダウンロードしたファイルのチェックサムをPythonで確認してみた
 - 反復処理 (while)
 - 反復処理(for)
 - 条件分岐
 - 自作のモジュールをインポートする