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

【Python応用】urllibを用いたスクレイピング方法

Python

Pythonでスクレイピングを行う方法の一つに「urllib」があります。ここでは「urllib」について解説しています。

この記事の対象

  • Webスクレイピングに挑戦したい方
  • urllib()メソッドの使用方法を知りたい方
  • urljoin()メソッドを用いた画像の保存方法を知りたい方
スポンサーリンク
スポンサーリンク

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証明書の指定
contextSSLに関する引数

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」について解説しています。
タイトルとURLをコピーしました