Python 3.x で URL 操作に urllib モジュールを使用する方法
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 サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

Pythonasyncioについて...

Pythonプログラミングでカスタムデコレーターを使用する場合、Pylance Type検出問題解決策デコレーターは、行を追加するために使用できる強力なツールです...

ループ内で印刷を使用する場合、PythonのTQDMライブラリを使用する場合、PythonのTQDMでの印刷によって引き起こされる進行状況バーの問題を避けてください...

PythonのHTTPXライブラリを使用してHTTP/2を送信します...

Pythonの非同期ライブラリ間の互換性の問題Python、非同期プログラミングは、高い並行性とI/Oのプロセスになりました...

Python 3.6のピクルスファイルの読み込みエラー:modulenotfounderror:nomodulenamed ...
