首頁 > 軟體

詳解Python requests模組

2021-06-21 13:01:31

前言

雖然Python的標準庫中 urllib2 模組已經包含了平常我們使用的大多數功能,但是它的 API 使用起來讓人感覺不太好,而 Requests 自稱 「HTTP for Humans」,說明使用更簡潔方便。

Requests 繼承了urllib2的所有特性。Requests支援HTTP連線保持和連線池,支援使用cookie保持對談,支援檔案上傳,支援自動確定響應內容的編碼,支援國際化的 URL 和 POST 資料自動編碼。

開源地址:https://github.com/kennethreitz/requests

中文檔案 API: http://docs.python-requests.org/zh_CN/latest/index.html

一、GET請求

1.1 最基本的GET請求

# 寫法一:
response = requests.get("http://www.baidu.com/")
# 寫法二:
# response = requests.request("get", http://www.baidu.com/)

1.2 新增headers和查詢引數

如果想新增 headers,可以傳入headers引數來增加請求頭中的headers資訊。如果要將引數放在url中傳遞,可以利用 params 引數。

import requests
 
kw = {'wd':'長城'}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# params 接收一個字典或者字串的查詢引數,字典型別自動轉換為url編碼,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)
#檢視響應內容,response.text 返回的是Unicode格式的資料
print response.text
#<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer> .....
# 檢視響應內容,response.content返回的位元組流資料
print respones.content
# 檢視完整url地址
print response.url
# http://www.baidu.com/?wd=%E9%95%BF%E5%9F%8E
# 檢視響應頭部字元編碼
print response.encoding
# ISO-8859-1 
# 檢視響應碼
print response.status_code
# 200

二、POST請求

2.1 最基本的POST請求

response = requests.post("http://www.baidu.com/", data = data)

2.2 傳入data資料

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

import requests
 
formdata = {
    "type":"AUTO",
    "i":"i love python",
    "doctype":"json",
    "xmlVersion":"1.8",
    "keyfrom":"fanyi.web",
    "ue":"UTF-8",
    "action":"FY_BY_ENTER",
    "typoResult":"true"
}
 
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
 
headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
 
response = requests.post(url, data = formdata, headers = headers)
print response.text
# {"type":"EN2ZH_CN","errorCode":0,"elapsedTime":2,"translateResult":[[{"src":"i love python","tgt":"我喜歡python"}]],"smartResult":{"type":1,"entries":["","肆文","高德納"]}}
# 如果是json檔案可以直接顯示
print response.json()
# {u'errorCode': 0, u'elapsedTime': 0, u'translateResult': [[{u'src': u'i love python', u'tgt': u'u6211u559cu6b22python'}]], u'smartResult': {u'type': 1, u'entries': [u'', u'u8086u6587', u'u9ad8u5fb7u7eb3']}, u'type': u'EN2ZH_CN'}

到此這篇關於詳解Python requests模組的文章就介紹到這了,更多相關Python requests模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com