python爬虫類はrequestsを使用してpost要求例を送信します。


概要
HTTPプロトコルでは、postが提出したデータはメッセージ本体に置かなければならないと規定されていますが、プロトコルではどのような符号化方式を使用しなければならないかが規定されていません。サービス側は、要求側のContent-Typeフィールドに基づいて、要求中のメッセージ本体がどのように符号化されているかを知り、メッセージ本体を解析する。具体的な符号化方式は以下を含む。
appication/x-www-form-urlencoded最も一般的なpostがデータを提出する方式で、フォーム形式でデータを提出します。
アプリ/Jsonはjsonでデータを提出します。
multiipad/form-dataは一般的に使ってファイルをアップロードします。
一、フォームでpostリクエストを送信する
Reqeustsはformフォームでpost要求を送信することをサポートしています。要求されたパラメータを辞書に構成して、requests.post()のdataパラメータに渡すだけでいいです。
例:

# -*- coding: utf-8 -*-
# author:Gary
import requests

url = 'http://httpbin.org/post' #        url
data = {'key1': 'value1', 'key2': 'value2'} #          
r = requests.post(url, data=data) #   requests post  ,data         
print(r.text) #        


出力

{ 
“args”: {}, 
“data”: “”, 
“files”: {}, 
 #        
“form”: { 
“key1”: “value1”,
“key2”: “value2” 
}, 
“headers”: { 
…… 
“Content-Type”: “application/x-www-form-urlencoded”, 
…… 
}, 
“json”: null, 
…… 
}

 要求ヘッダのContect-Typeフィールドは、すでにappication/x-wn-form-urlencoddに設定されており、data={'key 1'、''value 1'、'key 2''は、formフォームでサービス端末に提出され、サービス端末から返されるformフィールドは、送信されたデータであることがわかる。
二、json形式でpostリクエストを送ります。
一json列をrequests.post()のdataパラメータに伝えることができます。

# -*- coding: utf-8 -*-
# author:Gary
import requests
import json

url = 'http://httpbin.org/post' #        url
json_data = json.dumps({'key1': 'value1', 'key2': 'value2'}) #          ,      json
r = requests.post(url, data=json_data) #   requests post  ,data         
print(r.text) #        

出力:

{ 
“args”: {}, 
“data”: “{\”key2\”: \”value2\”, \”key1\”: \”value1\”}”, 
“files”: {}, 
“form”: {}, 
“headers”: { 
…… 
“Content-Type”: “application/json”, 
…… 
}, 
“json”: { 
“key1”: “value1”, 
“key2”: “value2” 
}, 
…… 
}
リクエストヘッドのConteet-Typeは、aplication/jsonに設定され、json()を参照してください。dataこのjsonはサービスセンターに提出します。
三、multiiPad形式でpost要求(アップロードファイル)を送る。
RequestsもmultiiPad形式でpost要求を送ることをサポートしています。一つのファイルをrequests.post()のfilesパラメータに渡すだけでいいです。

# -*- coding: utf-8 -*-
# author:Gary
import requests

url = 'http://httpbin.org/post'
files = {'file': open('report.txt', 'rb')} #      report.txt      ,rb                  。
r = requests.post(url, files=files) #   files              
print(r.text)


出力:

{ 
“args”: {}, 
“data”: “”, 
“files”: { 
“file”: “Hello world!” 
}, 
“form”: {}, 
“headers”: {…… 
“Content-Type”: “multipart/form-data; boundary=467e443f4c3d403c8559e2ebd009bf4a”, 
…… 
}, 
“json”: null, 
…… 
}
テキストファイルのレポート.txtの内容は一行だけです。ハローワールド!要求された応答の結果から、データはすでにサービス端末にアップロードされていることがわかる。
このページでは、python爬虫類についてrequestsを使ってpostを送信します。詳細な説明を求める記事をここに紹介します。これに関連するpython爬虫類はrequestsを使ってpostを送信します。