JY-CONTENTS

JY

JY-CONTENTS
search

+

MENU

【Python】urllibパッケージ

【Python】urllibパッケージ

(DATE)

-

2017.06.30

(CATEGORY)

-

urllib パッケージを使ってインターネット上のリソースを取得できます。

urllib.request

urllib.request は URLs (Uniform Resource Locators) を取得するための Python モジュールです。

URL を取得する

urlopen 関数を使って取得します。
サイト「http://r-force.x0.com/web/」のソースを表示させます。

import urllib.request
response = urllib.request.urlopen('http://r-force.x0.com/web/')
html = response.read()
print(html)

取得したソースの保存

ソースを取得し、それを一時的な場所に保存しておきたいときは、urlretrieve() 関数を使って行うことができます。
取得したソースを指定したディレクトリにhtmlファイルで保存します。

#ソースを取得するサイト
url = "http://r-force.x0.com/web/"
 
#データを保存するディレクトリ
path = "C:/sam/"
 
#ファイル名を指定してデータを保存
urllib.request.urlretrieve(url, path + "mysite.html")

urllib.parse

このモジュールでは URL 文字列をその構成要素 (アドレススキーム、ネットワーク上の位置、パスその他) に分解したり、構成要素を URL に組みなおしたり、相対 URL を指定した基底 URL (base URL) に基づいて絶対 URL に変換するための標準的なインタフェースを定義しています。
urllib.parse モジュールは、大きく分けると URL の解析を行う関数と URL のクオートを行う関数を定義しています。

urllib.parse.urlparse

URL を解析して 6 つの構成要素にし、6 要素のタプルを返します。
各タプル要素は文字列で、空の場合もあります。

from urllib.parse import urlparse
  
url = 'http://docs.python.jp/3.3/library/urllib.parse.html?highlight=urllib.parse#urllib.parse'
p = urlparse(url)
 
print(p)
print(p.scheme)
print(p.path)
print(p.geturl())
ParseResult(scheme=’http’, netloc=’docs.python.jp’, path=’/3.3/library/urllib.parse.html’,
params=”, query=’highlight=urllib.parse’, fragment=’urllib.parse’)http/3.3/library/urllib.parse.htmlhttp://docs.python.jp/3.3/library/urllib.parse.html?highlight=urllib.parse#urllib.parse

urllib.parse.parse_qs

url 引数として渡されたクエリ文字列を解析します。
解析されたデータを辞書として返します。
辞書のキーは一意なクエリ変数名で、値は各変数名に対する値からなるリストです。

from urllib.parse import parse_qs
  
url = 'http://docs.python.jp/3.3/library/urllib.parse.html?highlight=urllib.parse&highlight2=urllib2'
p = parse_qs(url)
print(p)
{‘http://docs.python.jp/3.3/library/urllib.parse.html?highlight’: [‘urllib.parse’],
‘highlight2’: [‘urllib2’]}
from urllib.parse import parse_qs
  
url = 'http://docs.python.jp/3.3/library/urllib.parse.html?highlight=urllib&highlight2=urllib2&highlight2=urllib3'
p = parse_qs(url)
print(p)
{‘http://docs.python.jp/3.3/library/urllib.parse.html?highlight’: [‘urllib’],
‘highlight2’: [‘urllib2’, ‘urllib3’]}

NEW TOPICS

/ ニュー & アップデート

SEE ALSO

/ 似た記事を見る

JY CONTENTS UNIQUE BLOG

search-menu search-menu