1. ホーム
  2. python

[解決済み】PythonのRequestsライブラリを使って "User-agent "を送信する

2022-02-02 16:51:18

質問

の値を送信したい。 "User-agent" Python Requests を使用してウェブページをリクエストしているとき。 私はそれが以下のコードのように、ヘッダの一部としてこれを送信することが大丈夫であるかどうかわからない。

debug = {'verbose': sys.stderr}
user_agent = {'User-agent': 'Mozilla/5.0'}
response  = requests.get(url, headers = user_agent, config=debug)

デバッグ情報に、リクエスト時に送信されるヘッダーが表示されません。

この情報はヘッダーで送っても良いのでしょうか? そうでない場合、どのように送ればよいのでしょうか?

解決方法を教えてください。

その user-agent は、ヘッダーのフィールドとして指定する必要があります。

ここでは HTTP ヘッダーフィールドのリスト に興味があると思います。 リクエスト固有のフィールド を含む。 User-Agent .

requests v2.13 以降を使用している場合

最もシンプルな方法は、以下のように辞書を作成し、ヘッダーを直接指定することです。

import requests

url = 'SOME URL'

headers = {
    'User-Agent': 'My User Agent 1.0',
    'From': '[email protected]'  # This is another valid field
}

response = requests.get(url, headers=headers)

requests v2.12.x およびそれ以前のバージョンを使用している場合

古いバージョンの requests はデフォルトのヘッダを妨害するので、以下のようにしてデフォルトのヘッダを保持し、そこに独自のヘッダを追加するようにしたいものです。

import requests

url = 'SOME URL'

# Get a copy of the default headers that requests would use
headers = requests.utils.default_headers()

# Update the headers with your custom ones
# You don't have to worry about case-sensitivity with
# the dictionary keys, because default_headers uses a custom
# CaseInsensitiveDict implementation within requests' source code.
headers.update(
    {
        'User-Agent': 'My User Agent 1.0',
    }
)

response = requests.get(url, headers=headers)