国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python中requests模塊的使用方法

python中requests模塊的使用方法

2020-06-01 11:23huaweitman Python

這篇文章主要介紹了python中requests模塊的使用方法,實例分析了requests模塊的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了python中requests模塊的使用方法。分享給大家供大家參考。具體分析如下:

在HTTP相關處理中使用python是不必要的麻煩,這包括urllib2模塊以巨大的復雜性代價獲取綜合性的功能。相比于urllib2,Kenneth Reitz的Requests模塊更能簡約的支持完整的簡單用例。

簡單的例子:

想象下我們試圖使用get方法從http://example.test/獲取資源并且查看返回代碼,content-type頭信息,還有response的主體內容。這件事無論使用urllib2 或者Requests都是很容易實現的。

urllib2 

?
1
2
3
4
5
6
7
8
9
>>> import urllib2
>>> url = 'http://example.test/'
>>> response = urllib2.urlopen(url)
>>> response.getcode()
200
>>> response.headers.getheader('content-type')
'text/html; charset=utf-8'
>>> response.read()
'Hello, world!'

Requests

?
1
2
3
4
5
6
7
8
9
>>> import requests
>>> url = 'http://example.test/'
>>> response = requests.get(url)
>>> response.status_code
200
>>> response.headers['content-type']
'text/html; charset=utf-8'
>>> response.content
u'Hello, world!'

這兩種方法很相似,相對于urllib2調用方法讀取response中的屬性信息,Requests則是使用屬性名來獲取對應的屬性值。
兩者還有兩個細微但是很重要的差別:

1 Requests 自動的把返回信息有Unicode解碼
2 Requests 自動保存了返回內容,所以你可以讀取多次,而不像urllib2.urlopen()那樣返回的只是一個類似文件類型只能讀取一次的對象。

第二點是在python交互式環境下操作代碼很令人討厭的事情

一個復雜一點的例子:

現在讓我們嘗試下復雜點得例子:使用GET方法獲取http://foo.test/secret的資源,這次需要基本的http驗證。使用上面的代碼作為模板,好像我們只要把urllib2.urlopen() 到requests.get()之間的代碼換成可以發送username,password的請求就行了

這是urllib2的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
>>> import urllib2
>>> url = 'http://example.test/secret'
>>> password_manager = urllib2.HTTPPasswordMgrWithDefaultRealm()
>>> password_manager.add_password(None, url, 'dan', 'h0tdish')
>>> auth_handler = urllib2.HTTPBasicAuthHandler(password_manager)
>>> opener = urllib2.build_opener(auth_handler)
>>> urllib2.install_opener(opener)
>>> response = urllib2.urlopen(url)
>>> response.getcode()
200
>>> response.read()
'Welcome to the secret page!'

一個簡單的方法中實例化了2個類,然后組建了第三個類,最后還要裝載到全局的urllib2模塊中,最后才調用了urlopen,那么那兩個復雜的類是什么的
迷惑了嗎,  這里所有urllib2的文檔 http://docs.python.org/release/2.7/library/urllib2.html
那Requests是怎么樣解決同樣的問題的呢?

Requests

?
1
2
3
4
5
6
7
>>> import requests
>>> url = 'http://example.test/secret'
>>> response = requests.get(url,auth=('dan','h0tdish'))
>>> response.status_code
200
>>> response.content
u'Welcome to the secret page!'

只是在調用方法的時候增加了一個auth關鍵字函數
我敢打賭你不用查文檔也能記住。

錯誤處理 Error Handling

Requests對錯誤的處理也是很非常方面。如果你使用了不正確的用戶名和密碼,urllib2會引發一個urllib2.URLError錯誤,然而Requests會像你期望的那樣返回一個正常的response對象。只需查看response.ok的布爾值便可以知道是否登陸成功。

?
1
2
3
>>> response = requests.get(url,auth=('dan','wrongPass'))
>>> response.ok
False

其他的一些特性:

* Requests對于HEAD, POST, PUT, PATCH, 和 DELETE方法的api同樣簡單
* 它可以處理多部分上傳,同樣支持自動轉碼
* 文檔更好
* 還有更多

Requests 是很好的,下次需要使用HTTP時候可以試試。

希望本文所述對大家的Python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲电影第二页 | 天天干,夜夜操 | 欧美freesex | 欧美黄色小视频 | 97久久精品人人做人人爽50路 | 久久精品无码一区二区三区 | 99精品欧美一区二区蜜桃免费 | 日本一区免费 | 欧美人妖在线 | 精品久久久久久国产 | 亚洲国产精品视频一区二区三区 | 久久久久久久久99精品 | 韩国毛片在线 | 欧美一区永久视频免费观看 | 三级成人在线 | 国产在线一区二区三区 | 久久久国产精品入口麻豆 | 国产激情91久久精品导航 | 国产精品亚洲综合 | 污视频免费 | 日韩成人影院 | 色婷婷一区二区三区 | 国产精品亚洲综合 | 男人天堂视频网 | 国产黄网 | 在线观看免费视频黄 | 日韩国产一区二区 | 国产精品国产三级国产aⅴ原创 | 激情欧美日韩一区二区 | 玖草av| 在线三级电影 | 成年人免费在线播放视频 | 久久国产精品久久精品 | 黄色免费网站在线观看 | 成人午夜激情 | 亚洲一区 日韩精品 中文字幕 | 黄网站免费看 | 欧美在线观看免费观看视频 | 久久久久国产一区二区三区四区 | 欧美寂寞影院 | 婷婷色视频 |