Pythonでスクレイピングを行う方法の一つに「urllib」があります。ここでは「urllib」について解説しています。
この記事の対象
urllibとは
urllibはURL を扱うモジュールを集めたパッケージです。中でも「urllib.request」はURLを開くための拡張モジュールとして使用されることが多いです。
また、単純に指定のURLを開きたい場合は、「urllib.request.urlopen()」を用いることで可能です。
基本的な型(urllib.request.urlopen())
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
最低限の引数としては指定のURLになります。
項目 | 内容 |
url | 指定のURL |
data | サーバーに送信する追加データを指定するオブジェクト |
timeout | タイムアウト時間の指定 |
cafile、capath | HTTPSリクエストのためのCA証明書の指定 |
context | SSLに関する引数 |
urllibを用いた使用例
urllib.request.urlopen()
#urllibを用いた使用例
import urllib.request
#1---URlの指定
url = "https://***/***.jpg"
savename = "favorite.png"
#2---urlのopen
png_save = urllib.request.urlopen(url).read()
#3---指定した画像の保存
with open(savename, mode='wb') as f:
f.write(png_save)
上記のプログラムは任意のサイトの画像を保存する内容となっています。urlを指定して、任意の名前で保存するプログラムです。
「savename」で任意のfile名にしています。「request.urlopen()」はメモリ上に取得したデータをファイルに保存するものです。
最後に「with open」で読み書きモードを指定して、保存しています。
urljoin()
相対pathから絶対pathにして任意のurlにする際、便利なのが「urljoin()」です。一緒に使用方法を覚えておくと便利です。
urljoin()の型
urllib.parse.urljoin(base, url)
「base」の部分に基準となるURLを指定して、「url」に相対pathを指定します。
urljoin()を用いた使用例
from urllib.parse import urljoin
import urllib.request
base = "http://pictogram2.com"
savename = "test.png"
url = urljoin(base,"/p/p0999/i/tn.png")
urllib.request.urlretrieve(url,savename)
上記のプログラムは相対パスを絶対パスに変換してからpngをダウンロードする内容となっています。
その他、urllibを用いた使用例
項目 | 内容 |
urllib.parseモジュールとは | Webスクレイピングをする際、URL指定を行う必要があります。URLの取り扱いは「urllib.parse」モジュールで簡単に操作できます。ここでは「urllib.parse」について解説しています。 |