11.4.1 URLopener オブジェクト

URLopener および FancyURLopener クラスのオブジェクトは 以下の属性を持っています。

open( fullurl[, data])
適切なプロトコルを使って fullurl を開きます。このメソッドは キャッシュとプロキシ情報を設定し、その後適切な open メソッドを入力引数 つきで呼び出します。認識できないスキームが与えられた場合、 open_unknown() が呼び出されます。 data 引数は urlopen() の引数 data と同じ意味を持っています。

open_unknown( fullurl[, data])
オーバライド可能な、未知のタイプの URL を開くためのインタフェースです。

retrieve( url[, filename[, reporthook[, data]]])
url のコンテンツを取得し、filename に書き込みます。 返り値はタプルで、ローカルシステムにおけるファイル名と、 応答ヘッダ (URL がリモートを指している場合) または None (URL がローカルを指している場合) からなります。呼び出し側の処理は その後 filename を開いて内容を読み出さなくてはなりません。 filename が与えられており、かつ URL がローカルシステム上の ファイルを示しているばあい、入力ファイル名が返されます。URL が ローカルのファイルを示しておらず、かつ filename が与えられて いない場合、ファイル名は入力 URL の最後のパス構成要素につけられた拡張子と 同じ拡張子を tempfile.mktemp() につけたものになります。 reporthook を与える場合、この変数は 3 つの数値パラメタを受け取る 関数でなくてはなりません。この関数はデータの塊 (chunk) がネットワークから 読み込まれるたびに呼び出されます。ローカルの URL を与えた場合 reporthook は無視されます。

urlhttp: スキーム識別子を使っている場合、オプションの 引数 data を与えて POST リクエストを行うよう指定できます (通常のリクエストの形式は GET です) 。 引数 data は標準の application/x-www-form-urlencoded 形式でなくてはなりません; 上の urlencode() を参照して下さい。

version
URL をオープンするオブジェクトのユーザエージェントを指定する 変数です。urllib を特定のユーザエージェントであると サーバに通知するには、サブクラスの中でこの値をクラス変数として 値を設定するか、コンストラクタの中でベースクラスを呼び出す前に 値を設定してください。

FancyURLopener クラスはオーバライド可能な追加のメソッドを提供 しており、適切な振る舞いをさせることができます:

prompt_user_passwd( host, realm)
指定されたセキュリティ領域 (security realm) 下にある与えられたホスト において、ユーザ認証に必要な情報を返すための関数です。この関数が 返す値は (user, password) 、からなるタプルなくて はなりません。値はベーシック認証 (basic authentication) で使われます。

このクラスでの実装では、端末に情報を入力するようプロンプトを出します; ローカルの環境において適切な形で対話型モデルを使うには、このメソッドを オーバライドしなければなりません。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。