requests發送HTTP請求


requests庫是一個流行的用於發送Http請求的Python第三方庫, 其設計簡潔高效可以完美替代默認的urllib。

使用pip安裝requests:

pip install requests

引入模塊:

import requests

發送GET請求:

response = requests.get(url)

在response對象中可以得到響應的相關信息。

>>> response = requests.get('http://www.cnblogs.com')
>>> response = requests.get('http://www.cnblogs.com/Finley/')
>>> >>> response.status_code
200
>>> response.text
<!DOCTYPE html>
<html>
...
>>> response.raw  # 獲得原始響應
<requests.packages.urllib3.response.HTTPResponse object at 0x10e3b3490>
>>> response.request # 獲得請求對象
<PreparedRequest [GET]>

發送其它方法的請求:

response = requests.post(url)
response = requests.head(url)
response = requests.delete(url)
response = requests.put(url)
response = requests.options(url)

傳遞url參數:

response = requests.get(url, params={key:val})


查看已經編碼的url: response.url

添加請求頭:

response = requests.get(url, headers={key: val})

查看請求頭和響應頭:

>>> response.headers
{'Content-Encoding': 'gzip', 
'Transfer-Encoding': 'chunked', 
'Expires': 'Mon, 21 Nov 2016 09:01:00 GMT', 
'Vary': 'Accept-Encoding', 
'Last-Modified': 'Mon, 21 Nov 2016 09:00:50 GMT', 
'Connection': 'keep-alive', 
'X-UA-Compatible': 'IE=10', 
'Cache-Control': 
'private, max-age=10', 
'Date': 'Mon, 21 Nov 2016 09:00:50 GMT', 		
'Content-Type': 'text/html; charset=utf-8'
}
>>> response.request.headers
{'Connection': 'keep-alive', 
'Accept-Encoding': 'gzip, deflate', 
'Accept': '*/*', 
'User-Agent': 'python-requests/2.11.1'
}

模擬提交表單:

response = requests.post(url, data={key: val})

可以使用multipart-encoded上傳文件:

files = {'file': open(path, 'rb')}
response = requests.post(url, files=files)

也可以設置文件名和請求頭:

files = {
	'file': (filename, open(path, 'rb')),
	header_name: header_val
}
response = requests.post(url, files=files)

添加cookies:

response = requests.post(url, cookies={key: val})

查看cookies:

>>> response.cookies
<RequestsCookieJar[]>

requests只能提供阻塞IO, 使用timeout以秒為單位設置響應超時時間:

response = requests.post(url, timeout=0.2)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM