ホームページ  >  記事  >  バックエンド開発  >  Python 3.x で URL 操作に urllib モジュールを使用する方法

Python 3.x で URL 操作に urllib モジュールを使用する方法

PHPz
PHPzオリジナル
2023-07-31 18:06:23668ブラウズ

Python 3 で URL 操作に urllib モジュールを使用する方法xx

はじめに

ネットワーク開発を行う場合、URL を処理する必要があることがよくあります。 Python は urllib モジュールを提供します。このモジュールでは、urllib.request サブモジュールが URL 操作を簡単に実行できます。この記事では、urllibを使用してURLを開く、読み取る、ダウンロード、アップロードなどの操作を行う方法を紹介します。

urllib.request モジュールの基本機能

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) はどちらも同期であり、操作が完了するまでプロセスをブロックします。

urllib.request を使用して 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 にあるファイルを指定したファイル名でダウンロードして保存します。ダウンロードが完了すると、プロンプトメッセージが出力されます。

POST リクエストを使用する

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。