"); //-->
今天扣丁學堂給大家詳細介紹一下關于PythonRequests模塊快速入門詳解,首先requests是python的一個HTTP客戶端庫,跟urllib,urllib2類似。它比urllib更加方便,可以節約我們大量的工作,它比urllib更加Pythoner,下面我們一起來看一下吧。

安裝Requests
通過pip安裝:$pipinstallrequests
或者,下載代碼后安裝:
$mvmasterrequests.tgz
$tarxzfrequests.tgz
$cdrequests-requests-3dc84cd
$pythonsetup.pyinstall
發送請求
使用Requests發送網絡請求非常簡單。
>>>importrequests#導入Requests模塊
>>>result=requests.get('http://www.codingke.com')#生成Response對象
>>>result.status_code#返回碼
200
>>>result.headers['content-type']#返回頭部信息
'text/html;charset=utf8'
>>>result.encoding#編碼信息
'utf-8'
>>>result.content#內容部分
為URL傳遞參數
你也許經常想為URL的查詢字符串(querystring)傳遞某種數據。如果你是手工構建URL,那么數據會以鍵/值對的形式置于URL中,跟在一個問號的后面。例如,http://www.codingke.com/python/。Requests允許你使用params關鍵字參數,以一個字典來提供這些參數。舉例來說,如果你想傳遞version=python和keywords=codingke到www.codingke.com,那么你可以使用如下代碼:
>>>data={'version':python,'keywords':codingke}
>>>result=requests.get("http://www.codingke.com",params=data)
>>>printresult.status_code
200
原始響應內容
在罕見的情況下你可能想獲取來自服務器的原始套接字響應,那么你可以訪問r.raw。如果你確實想這么干,那請你確保在初始請求中設置了stream=True。具體的你可以這么做:
>>>result=requests.get('http://www.codingke.com',stream=True)
>>>result.raw
>>>result.raw.read(10)
'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'
定制請求頭
如果你想為請求添加HTTP頭部,只要簡單地傳遞一個dict給headers參數就可以了。
例如,在前一個示例中我們沒有指定content-type:
>>>importrequests
>>>url='http://www.codingke.com'
>>>data={'version':'python','keywords':codingke}
>>>headers={'content-type':'application/json'}
>>>result=requests.post(url,data=json.dumps(data),headers=headers)
錯誤與異常
遇到網絡問題(如:DNS查詢失敗、拒絕連接等)時,Requests會拋出一個ConnectionError異常。
遇到罕見的無效HTTP響應時,Requests則會拋出一個HTTPError異常。
若請求超時,則拋出一個Timeout異常。
若請求超過了設定的最大重定向次數,則會拋出一個TooManyRedirects異常。
所有Requests顯式拋出的異常都繼承自requests.exceptions.RequestException。
其他常用方法
result.content#獲取二進制響應內容
result.json()#JSON響應內容
result.headers#響應頭內容
result.cookies#cookie內容
result.history#請求歷史
以上就是關于Python培訓之Requests模塊快速入門的詳細介紹,最后想要學習Python的小伙伴可以選擇扣丁學堂,扣丁學堂不僅有專業的老師,還有與時俱進的課程體系,更有大量的Python視頻教程供學員觀看學習,心動的小伙伴抓緊時間行動吧。扣丁學堂Python技術交流群:816572891。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
相關推薦
http://chinamcu.2000y.net/
有沒有燒寫bin文件到flash的工具(比較快的)
P89C669串口2通訊示例
P89C669單片機數據手冊
樂聲M15L機芯保護電路
智能座艙域控之硬件系統
樣例程序演示視頻
RL78G13 Stick演示視頻
基于Raspberry Pi的智能LED世界地圖風靡全球
車知識大掃盲:激光雷達和純視覺方案,兩種差別有哪些?
P89C669單片機數據手冊 (英)
中國獨立主機廠的 ADAS 和自動駕駛評估
那位仁兄碰過BINFMT_FLAT的問題,求教
樂聲M17機芯保護電路
車載支付和 ETC 市場回顧
輸出接口電路
RU-Stick試用套件
請教flash燒寫原理
稚暉君又搞事!充電寶秒變4K顯示器?DIY教程開源,極客圈炸了!
整車功能架構 --- 智能座艙
有沒有9200的Timer Counter更詳細的資料啊?
SH-Stick試用套件
S32J以太網交換機為恩智浦CoreRide平臺帶來安全、可靠的網絡連接
P89C66x 單片機勘誤
P89C669單片機用戶手冊 (英)
樂聲M16M機芯保護電路
索尼KV-25F彩電保護電路
一文了解智能座艙監測系統(IMS)之DMS和OMS
RX Stick套件
樂聲MX-2機芯保護電路