溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python爬蟲中Requests實現(xiàn)post請求的案例

發(fā)布時間:2020-11-12 09:38:34 來源:億速云 閱讀:382 作者:小新 欄目:編程語言

這篇文章主要介紹Python爬蟲中Requests實現(xiàn)post請求的案例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

對于 POST 請求來說,我們一般需要為它增加一些參數(shù)。那么最基本的傳參方法可以利用 data 這個參數(shù)。

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

運行結(jié)果

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "key1": "value1",
    "key2": "value2"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "23",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.9.1"
  },
  "json": null,
  "url": "http://httpbin.org/post"
}

可以看到參數(shù)傳成功了,然后服務器返回了我們傳的數(shù)據(jù)。 有時候我們需要傳送的信息不是表單形式的,需要我們傳 JSON 格式的數(shù)據(jù)過去,所以我們可以用 json.dumps () 方法把表單數(shù)據(jù)序列化。

import json
import requests
 
url = 'http://httpbin.org/post'
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload))
print r.text

運行結(jié)果

{
  "args": {},
  "data": "{\"some\": \"data\"}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "16",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.9.1"
  },
  "json": {
    "some": "data"
  },  
  "url": "http://httpbin.org/post"
}

通過上述方法,我們可以 POST JSON 格式的數(shù)據(jù) 如果想要上傳文件,那么直接用 file 參數(shù)即可 新建一個 a.txt 的文件,內(nèi)容寫上 Hello World!

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

可以看到運行結(jié)果如下

{
  "args": {},
  "data": "",
  "files": {
    "file": "Hello World!"
  },
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "156",
    "Content-Type": "multipart/form-data; boundary=7d8eb5ff99a04c11bb3e862ce78d7000",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.9.1"
  },
  "json": null,
  "url": "http://httpbin.org/post"
}

這樣我們便成功完成了一個文件的上傳。 requests 是支持流式上傳的,這允許你發(fā)送大的數(shù)據(jù)流或文件而無需先把它們讀入內(nèi)存。要使用流式上傳,僅需為你的請求體提供一個類文件對象即可

with open('massive-body') as f:
requests.post('http://some.url/streamed', data=f)

這是一個非常實用方便的功能。

以上是Python爬蟲中Requests實現(xiàn)post請求的案例的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI