ホームページ > バックエンド開発 > Python チュートリアル > urllib2カスタムオープナーの詳細説明

urllib2カスタムオープナーの詳細説明

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:45:19
オリジナル
1340 人が閲覧しました

urllib2.urlopen() 関数は、認証、Cookie、その他の高度な HTTP 機能をサポートしません。これらの機能をサポートするには、build_opener() 関数を使用してカスタム Opener オブジェクトを作成する必要があります。

コードをコピーします コードは次のとおりです:

build_opener([handler1 [handler2, ... ]])

パラメータ ハンドラは、HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler などの Handler インスタンスです。

build_opener() によって返されるオブジェクトには、urlopen() 関数と同じ機能を持つ open() メソッドがあります。

http ヘッダーを変更したい場合は、以下を使用できます:

コードをコピー コードは次のとおりです:

import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('ユーザーエージェント', 'Mozilla/5.0')]
opener.open('http://www.example.com/')

2. install_opener(オープナー)

urlopen() で使用されるグローバル オープナーとして、さまざまなオープナー オブジェクトをインストールします。

3. パスワード検証 (HTTPBasicAuthHandler)

HTTPBasicAuthHandler() ハンドラーは、add_password() を使用してパスワードを設定できます。

コードをコピー コードは次のとおりです:

h.add_password(realm,uri,user,passwd)

レルムは、リモート サーバーに応じて、認証に関連付けられた名前または説明です。 uri はベース URL です。 user と passwd はそれぞれユーザー名とパスワードを指定します。

コードをコピーします コードは次のとおりです:

import urllib2
auth=urllib2.HTTPBasicAuthHandler()
auth.add_password ('管理者','http://www.example.com','Dave','123456')
opener=urllib2.build_opener(auth)
u=opener.open('http :// www.example.com/evilplan.html')

4. Cookie 処理 (HTTPCookieProcessor)

コードをコピーします コードは次のとおりです:

import urllib2,cookielib
cookie=cookielib.CookieJar()
cookiehand =urllib2.HTTPCookieProcessor(cookie)
opener=urllib2.build_opener(cookiehand)

5.プロキシ(プロキシハンドラー)

ProxyHandler(proxies) パラメータの proxies は、プロトコル名 (http、ftp) などを、対応するプロキシ サーバーの URL にマッピングする辞書です。

コードをコピー コードは次のとおりです:

proxy=ProxyHandler({'http':'http://someproxy .com: 8080'})
auth=HTTPBasicAuthHandler()
auth.add_password()
opener=build_opener(auth,proxy)

urlopen でもプロキシを使用できます

コードをコピー コードは次のとおりです:

import urllib2
proxy = 'http://%s: %s@ %s' % ('ユーザー名', 'パスワード', 'プロキシ')
inforMation = urllib2.urlopen("http://www.example.com", proxies={'http':proxy} )
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート