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)
- 条件分岐
- 自作のモジュールをインポートする