※このページではアフィリエイト広告を利用しています

【Python応用】urllib.parseモジュールとは

Python

Webスクレイピングをする際、URL指定を行う必要があります。URLの取り扱いは「urllib.parse」モジュールで簡単に操作できます。ここでは「urllib.parse」モジュールの解析について解説しています。

スポンサーリンク
スポンサーリンク

urllib.parseモジュールとは

「urllib.parse」はurlの構成解析、分割、組合せが簡単にできるモジュールです。

URLの解析 ⇒ urlparse

urllib.parse.urlparse

本サイトを解析してみます。

from urllib.parse import urlparse
o = urlparse('https://www.hobby-happymylife.com/')
print(str(o))
#ParseResult(scheme='https', netloc='www.hobby-happymylife.com', path='/', params='', query='', fragment='')

「scheme」はhttpsやhttpなどを示すものです。「netloc」はサイトの住所を示しています。「path」は階層を示しています。空文字列のparams、query、fragmentは省略します。以下を参照してください。

属性インデックス指定されなかった場合の値
scheme0URL スキームscheme パラメータ
netloc1ネットワーク上の位置空文字列
path2階層的パス空文字列
params3最後のパス要素に対するパラメータ空文字列
query4クエリ要素空文字列
fragment5フラグメント識別子空文字列
usernameユーザ名None
passwordパスワードNone
hostnameホスト名 (小文字)None
portポート番号を表わす整数 (もしあれば)None
urllib.parse を元に作成

URLの絶対パス化 ⇒ urljoin

from urllib.parse import urljoin
url = 'https://www.hobby-happymylife.com/'
url_python=urljoin(url, '%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0/python/')
url_png=urljoin(url,/wp-content/uploads/2020/01/%E7%8B%AC%E5%AD%A6%E6%8C%BF%E5%85%A5%E5%9B%B3.png)

urlにこのサイトのHomeのurlを入れて、python入門までのパスを引数とし、urljoinで指定して組合せています。

次に同ページの写真を指定したい場合も同様に、絶対パスにしています。

相対パスを予め指定しておくて、後から様々な要素にアクセスしたいときに便利なのがurljoinです。

URLエンコード ⇒ urlencode

from urllib.parse import urlencode

query_params = {"name": "hoge", "page": 10}
encoded_params = urlencode(query_params)
print(encoded_params)  
#name=hoge&page=10

クエリ文字列をURLエンコードしています。

これからスクレイピングの勉強を始めたい方には以下の書籍がおすすめです。基本的な技術やサンプルコードが多くあるので、勉強がし易いです。

タイトルとURLをコピーしました