httplib用法
httplib的內(nèi)容上是很多,也比較簡單。以下是一個非常簡單的例子,使用httplib獲取google首頁的html:import httplibconn = httplib.HTTPConnection("www.google.cn")conn.request('get', '/')print conn.getresponse().read().decode('u8')conn.close()下面詳細(xì)介紹httplib提供的常用類型和方法。httplib.HTTPConnection ( host [ , port [ , strict [ , timeout ]]] )HTTPConnection類的構(gòu)造函數(shù),表示一次與服務(wù)器之間的交互,即請求/響應(yīng)。參數(shù)host表示服務(wù)器主機(jī),如:www.csdn.net;port為端口號,默認(rèn)值為80; 參數(shù)strict的默認(rèn)值為false, 表示在無法解析服務(wù)器返回的狀態(tài)行時( status line) (比較典型的狀態(tài)行如: HTTP/1.0 200 OK ),是否拋BadStatusLine 異常;可選參數(shù)timeout 表示超時時間。HTTPConnection提供的方法:HTTPConnection.request ( method , url [ , body [ , headers ]] )調(diào)用request 方法會向服務(wù)器發(fā)送一次請求,method 表示請求的方法,常用有方法有g(shù)et 和post ;url 表示請求的資源的url ;body 表示提交到服務(wù)器的數(shù)據(jù),必須是字符串(如果method 是"post" ,則可以把body 理解為html 表單中的數(shù)據(jù));headers 表示請求的http 頭。HTTPConnection.getresponse ()獲取Http 響應(yīng)。返回的對象是HTTPResponse 的實例,關(guān)于HTTPResponse 在下面會講解。HTTPConnection.connect () 連接到Http 服務(wù)器。HTTPConnection.close () 關(guān)閉與服務(wù)器的連接。HTTPConnection.set_debuglevel ( level )設(shè)置高度的級別。參數(shù)level 的默認(rèn)值為0 ,表示上輸出任何調(diào)試信息。httplib.HTTPResponseHTTPResponse表示服務(wù)器對客戶端請求的響應(yīng)。往往通過調(diào)用HTTPConnection.getresponse()來創(chuàng)建,它有如下方法和屬性:HTTPResponse.read([amt])獲取響應(yīng)的消息體。如果請求的是一個普通的網(wǎng)頁,那么該方法返回的是頁面的html??蛇x參數(shù)amt表示從響應(yīng)流中讀取指定字節(jié)的數(shù)據(jù)。HTTPResponse.getheader(name[, default])獲取響應(yīng)頭。Name表示頭域(header field)吊,可選參數(shù)default在頭域吊上存在的情況下作為默認(rèn)值返回。HTTPResponse.getheaders()以列表的形式返回所有的頭信息。HTTPResponse.msg獲取所有的響應(yīng)頭信息。HTTPResponse.version獲取服務(wù)器所使用的http協(xié)議版本。11表示http/1.1;10表示http/1.0。HTTPResponse.status獲取響應(yīng)的狀態(tài)碼。如:200表示請求成功。HTTPResponse.reason返回服務(wù)器處理請求的結(jié)果說明。一般為”O(jiān)K”下面通過一個例子來熟悉HTTPResponse中的方法:import httplibconn = httplib.HTTPConnection("www.g.cn", 80, False)conn.request('get','/',headers = {"Host": "www.google.cn","User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5","Accept": "text/plain"})res = conn.getresponse()print 'version:', res.versionprint 'reason:', res.reasonprint 'status:', res.statusprint 'msg:', res.msgprint?'headers:', res.getheaders()#html#print '\n' + '-' * 50 + '\n'#print res.read()conn.close()Httplib模塊中還定義了許多常量,如:Httplib. HTTP_PORT的值為80,表示默認(rèn)的端口號為80;Httplib.OK的值為200,表示請求成功返回;Httplib. NOT_FOUND的值為404,表示請求的資源上存在;可以通過httplib.responses查詢相關(guān)變量的含義,如:Print httplib.responses[httplib.NOT_FOUND]#not found
轉(zhuǎn)載于:https://www.cnblogs.com/kuihua/p/5971123.html
總結(jié)
- 上一篇: linux jdk 安装
- 下一篇: docker network