Python 3 で URL 操作に urllib モジュールを使用する方法xx
ネットワーク開発を行う場合、URL を処理する必要があることがよくあります。 Python は urllib モジュールを提供します。このモジュールでは、urllib.request サブモジュールが URL 操作を簡単に実行できます。この記事では、urllibを使用してURLを開く、読み取る、ダウンロード、アップロードなどの操作を行う方法を紹介します。
urllib.request モジュールは、URL と対話するための関数を提供します。一般的に使用される関数は次のとおりです:
urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, *, cafile=None, capath=None, cadefault=False, context=None)
: URL を開いてファイルのようなオブジェクトを返します。オプションのパラメータでは、POST データ、タイムアウト、証明書、その他の情報を指定できます。 urlretrieve(url, filename=None, reporthook=None, data=None)
: URL の内容を指定されたファイルにダウンロードします。 urlopen(url, data=None)
と urlretrieve(url)
はどちらも同期であり、操作が完了するまでプロセスをブロックします。 次は、urlopen
を使用して URL を開いてそのコンテンツを読み取る方法を示す簡単な例です。ウェブページ。
import urllib.request url = "https://www.example.com" response = urllib.request.urlopen(url) html = response.read().decode('utf-8') print(html)
この例では、まず urllib.request
モジュールをインポートします。次に、開く必要がある Web ページのアドレスである URL を定義します。次に、urlopen
関数を使用して URL を開き、返されたファイルのようなオブジェクトを response
変数に割り当てます。
response.read()
関数を使用して、URL によって返されたコンテンツを読み取ります。文字エンコーディングを適切に処理するには、decode('utf-8')
を使用してコンテンツを文字列にデコードします。最後に、結果の文字列を出力します。
次に、urlretrieve
関数を使用してファイルをダウンロードする方法を説明します。
import urllib.request url = "https://www.example.com/example.png" filename = "example.png" urllib.request.urlretrieve(url, filename) print("文件下载完成")
この例では、最初に urllib.request
モジュールもインポートします。次に、ダウンロードする必要があるファイル URL を定義し、変数 url
に保存します。次に、ダウンロード後に保存するファイル名を定義し、変数 filename
に保存します。
最後に、urlretrieve
関数を使用して、URL にあるファイルを指定したファイル名でダウンロードして保存します。ダウンロードが完了すると、プロンプトメッセージが出力されます。
GET リクエストを使用して URL を開くだけでなく、場合によっては POST リクエストも使用する必要があります。以下は、POST リクエストを使用したサンプルコードです。
import urllib.request import urllib.parse url = "https://www.example.com/example" data = {"name": "Example", "age": 20} data = urllib.parse.urlencode(data).encode('utf-8') response = urllib.request.urlopen(url, data=data) html = response.read().decode('utf-8') print(html)
この例では、urllib.request
モジュールと urllib.parse
モジュールもインポートしました。 POST リクエストを必要とする URL を定義しました。次に、POST リクエストのデータを定義し、urlendcode
関数を使用して URL 形式にエンコードし、バイト ストリームに変換します。
最後に、urlopen
関数を使用して、要求された URL とデータを指定します。同様に、返されたコンテンツを読み取り、印刷します。
ネットワーク アクセスでは、プロキシを使用する必要がある場合があります。以下はプロキシを使用したサンプルコードです。
import urllib.request url = "https://www.example.com" proxy = {"http": "http://localhost:8080"} proxy_handler = urllib.request.ProxyHandler(proxy) opener = urllib.request.build_opener(proxy_handler) urllib.request.install_opener(opener) response = urllib.request.urlopen(url) html = response.read().decode('utf-8') print(html)
この例では、URL とプロキシのアドレスを定義します。次に、urllib.request.ProxyHandler
関数を使用してプロキシ ハンドラーを作成し、プロキシに渡します。次に、urllib.request.build_opener
関数を使用してカスタム オープナーを作成し、その引数としてプロキシ プロセッサを設定します。
最後に、urllib.request.install_opener
関数を使用して、カスタム オープナーをグローバル オープナーとしてインストールします。このようにして、各 urlopen
はカスタム オープナーを使用して URL を開きます。
この記事では、Python 3.x での URL 操作に urllib モジュールを使用する方法を紹介します。サンプル コードを使用して、URL コンテンツを開いて読み取る方法、ファイルのダウンロード、POST リクエストの使用、プロキシの使用、その他の操作の方法を示しました。実際の開発では、urllib モジュールが提供する関数を使用して、特定のニーズに応じてより複雑な URL 操作を実行できます。
以上がPython 3.x で URL 操作に urllib モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。