ホームページ  >  記事  >  バックエンド開発  >  urllib.request モジュールを使用して Python 3.x で HTTP リクエストを送信する方法

urllib.request モジュールを使用して Python 3.x で HTTP リクエストを送信する方法

王林
王林オリジナル
2023-07-30 11:21:281531ブラウズ

Python 3.x

で urllib.request モジュールを使用して HTTP リクエストを送信する方法実際の開発プロセスでは、サーバーと対話するために HTTP リクエストを送信する必要があることがよくあります。 Python は urllib.request モジュールを提供します。これは、URL リクエストを処理するための Python 標準ライブラリのモジュールの 1 つです。この記事では、urllib.request モジュールを使用して HTTP リクエストを送信する方法を学びます。

urllib.request モジュールの概要

urllib.request モジュールは、Python3 の組み込み HTTP リクエスト モジュールであり、HTTP リクエストを送信および処理するための一連のメソッドを提供します。 GET リクエストや POST リクエストなどの一般的な HTTP リクエスト メソッドを実装でき、リクエスト ヘッダー、フォーム データ、Cookie およびその他の機能の設定もサポートします。

urllib.request モジュールを使用するには、まずそれをインポートする必要があります:

import urllib.request

その後、urllib.request モジュールのメソッドを使用して HTTP リクエストを送信できます。

GET リクエストの送信

GET リクエストを送信してサーバー応答のコンテンツを取得するには、urllib.request モジュールの urlopen() メソッドを使用できます。例は次のとおりです。

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

この例では、最初に urlopen() メソッドを使用して GET リクエストを送信します。リクエストされた URL は http://www.example.com です。次に、response.read() メソッドを呼び出して、サーバー応答の内容を取得します。最後に、print() メソッドを使用してコンテンツを出力します。

POST リクエストを送信する

POST リクエストを送信してフォーム データをアップロードするには、urllib.request.Request オブジェクトを構築し、urlopen() メソッドを使用してリクエストを送信します。例は次のとおりです。

import urllib.request
import urllib.parse

# 构造表单数据
data = urllib.parse.urlencode({'key1': 'value1', 'key2': 'value2'}).encode()

# 构造请求对象
request = urllib.request.Request('http://www.example.com', data)

# 发送 POST 请求
response = urllib.request.urlopen(request)

# 获取服务器响应的内容
content = response.read()

# 打印服务器响应的内容
print(content)

この例では、最初に urllib.parse.urlencode() メソッドを使用してフォーム データを構築します。次に、encode() メソッドを使用してバイト ストリームに変換します。次に、urllib.request.Request オブジェクトを構築し、URL とフォーム データをパラメータとして渡します。最後に、urlopen() メソッドを使用してリクエストを送信し、サーバー応答の内容を取得します。

リクエスト ヘッダーの設定

User-Agent、Referer、その他の情報などのリクエスト ヘッダーを設定する必要がある場合は、urllib.request.Request オブジェクトの add_header() メソッドを使用できます。 。例は次のとおりです。

import urllib.request

# 构造请求对象
request = urllib.request.Request('http://www.example.com')

# 设置请求头
request.add_header('User-Agent', 'Mozilla/5.0')

# 发送请求
response = urllib.request.urlopen(request)

この例では、最初に urllib.request.Request オブジェクトを構築し、それに URL をパラメータとして渡します。次に、add_header() メソッドを使用して、User-Agent リクエスト ヘッダーを設定します。最後に、urlopen() メソッドを使用してリクエストが送信されます。

リクエスト結果の処理

リクエストを送信した後、レスポンス関連のメソッドを呼び出すことでサーバーのレスポンスを取得できます。一般的に使用されるメソッドは次のとおりです。

    response.read(): サーバー応答の内容を取得し、バイト ストリームの形式でデータを返します。
  • response.getheaders(): サーバー応答のヘッダー情報を取得し、リストを返します。
  • response.getheader(name): 指定した名前のレスポンスヘッダ情報を取得します。
例は次のとおりです:

import urllib.request

# 发送 GET 请求
response = urllib.request.urlopen('http://www.example.com')

# 获取服务器响应的内容
content = response.read()

# 获取服务器响应的头信息
headers = response.getheaders()

# 获取指定名称的响应头信息
content_type = response.getheader('Content-Type')

# 打印结果
print(content)
print(headers)
print(content_type)

この例では、まず GET リクエストを送信し、サーバーから応答を取得します。次に、response.read()、response.getheaders()、response.getheader(name) メソッドをそれぞれ呼び出して、サーバー応答からコンテンツ、ヘッダー情報、指定された名前の応答ヘッダー情報を取得します。最後に、結果を印刷します。

要約

要約すると、urllib.request モジュールを使用して HTTP リクエストを送信する方法を学習しました。 urllib.request モジュールを使用すると、GET リクエスト、POST リクエストの送信、フォーム データのアップロード、リクエスト ヘッダーの設定などを簡単に行うことができます。これは、サーバーとの対話、データの取得などに非常に役立ちます。

この記事が、誰もが urllib.request モジュールを理解し、使用できるようになれば幸いです。読んでくれてありがとう!

以上がurllib.request モジュールを使用して Python 3.x で HTTP リクエストを送信する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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