ホームページ  >  記事  >  バックエンド開発  >  Pythonリクエストポストの使い方

Pythonリクエストポストの使い方

王林
王林転載
2023-04-29 16:52:062004ブラウズ

    Python は、投稿リクエストを送信するためにブラウザをシミュレートします。

    import requests

    Format request.post

    request.post(url, data, json, kwargs) # post请求格式
    request.get(url, params, kwargs) # 对比get请求

    投稿リクエストの送信とパラメータの受け渡しは次のとおりです。

    • Form (x-www-form-urlencoded)

    • json (application/json)

    • ## に分割
    #data パラメータは、辞書形式と文字列形式をサポートしています。辞書形式では、 json.dumps() メソッドを使用して、データを有効な JSON 形式の文字列に変換します。この方法では、json モジュールをインポートする必要があります。

    import json
    json.dumps(data) # data转换成json格式

    または、データ パラメータを post メソッドに割り当てます。json パラメータは正当な json 形式である必要があります。そうでない場合は役に立ちません。ブール値がある場合は、小文字にする必要があり、Unicode 以外の文字を含めることはできません。

    フォーム投稿リクエスト (x-www-form-urlencoded)

    import requests
    url = "https://editor.net/"
    data = {"key": "value"} # 字典 外层无引号
    resp = requests.post(url,data=data)
    print(resp.text)

    json タイプ投稿リクエスト

    import requests
    url = "https://editor.net/"
    data = '{"key": "value"}' # 字符串格式 
    resp = requests.post(url, data=data)
    print(resp.text)

    形式を渡すときに辞書形式を使用してパラメータを入力し、json に変換します

    (1) json.dumps() メソッドの変換

    import requests
    import json
    url = "https://editor.net/"
    data = {"key": "value"}
    resp = requests.post(url, data=json.dumps(data))
    print(resp.text)

    (2) post メソッドの json パラメータに辞書形式のデータを代入

    import requests
    import json
    url = "https://editor.net/"
    data = {"key": "value"}
    resp = requests.post(url, json=data)
    print(resp.text)

    python リクエスト post 解決いくつかのデータの問題

    最近、私は Requests を使用してデータを自動的に送信する小さなプログラムを作成しています。Requests ライブラリを使用しています。使用中に、投稿データのエンコーディングでいくつかの問題が発生しました。見つける必要があります。情報量が多く、やっと解決しました。

    投稿データの URL エンコーディングの問題

    通常、辞書データを投稿する場合、リクエストは辞書内のデータを URL エンコーディングして送信します。

    しかし、彼が使用した urlencode はデフォルトで UTF-8 エンコーディングであることがわかりました。私の Web サイト プログラムが gb2312 urlencode のみをサポートしている場合はどうすればよいでしょうか?

    エンコードのために urllib に urllib.parse.urlencode を導入できます。

    from urllib.parse import urlencode
    import requests
     
    session.post('http://www.bac-domm.com',   data=urlencode({'val':'中国人民'}, encoding='gb2312'),  headers = head_content)

    データが URL エンコードされる問題を回避する

    データを URL エンコードしたくない場合がありますが、どうすればよいでしょうか?

    投稿データの文字列に連結するだけです。もちろん、結合するときは文字列のエンコードに注意する必要があります。たとえば、中国語が含まれている場合は、エンコードを utf-8 に設定する必要があります。または gb2312。

    以上がPythonリクエストポストの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。