下面使用requests來傳送上述三種編碼的post請求。
requests提交form表單,一般存在於**的登入,用來提交使用者名稱和密碼。以 為例,在requests中,以form表單形式傳送post請求,只需要將請求的引數構造成乙個字典,然後傳給requests.post()的data引數即可。**如下:
url = ''
d =
r = requests.post(url, data=d)
print r.text
輸出效果如下:
,
"data":""
,"files":{},
"form":,
"headers":,
"json":null
,"origin":"113.140.11.122"
,"url":""
}
對於提交json串,主要是用於傳送ajax請求中,動態載入資料。以拼多多**為例,載入商品的方式為ajax,商品的內容在響應中。
下面把請求頭和請求實體列舉一下:
一些初學者根據請求頭寫爬蟲,就會犯requests的使用錯誤。
錯誤寫法
import requests
__author__ =
'qiye'
__date__ =
'2018/5/19 21:59'
url =
""data
=headers =
r = requests.post(url=url,data
=data,headers=headers)
print(r.text)
列印的內容如下:
正確寫法1
正確**是把data進行json編碼,再傳送。**如下:
r = requests.post(url=url,data =json.dumps(data),headers=headers)
這個時候再看一下列印內容,已經正確返回商品內容了。
,
...
正確寫法2import requests
__author__ =
'qiye'
__date__ =
'2018/5/19 21:59'
url =
""data
=headers =
r = requests.post(url=url,json =
data,headers=headers)
print(r.text)
上傳檔案在爬蟲中使用的很少,不過還是使用requests講解一下使用方式。content-type型別為multipart/form-data,以multipart形式傳送post請求,只需將一檔案傳給requests.post()的files引數即可。還是以 為例,**如下:
使用requests傳送get post請求
首先是安裝requests庫 pip install requests 匯入requests庫 import requests 定義乙個url 入參直接寫在url內,使用問號隔開 url test 返回的資料定義為r url賦值為之前定義的值 r requests.get url url test ...
requests爬蟲傳送post請求
test.py import requests import json 安裝了python就有了json模組 url data headers res requests.post url,data data,headers headers print res.json mainorders with...
requests模組傳送POST請求
在http協議中,post提交的資料必須放在訊息主體中,但是協議中並沒有規定必須使用什麼編碼方式,從而導致了提交方式的不同。服務端根據請求頭中的content type欄位來獲知請求中的訊息主體是用何種方式進行編碼,再對訊息主體進行解析。具體的編碼方式包括如下 以form表單形式提交資料,最常見也是...