最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

對python3 urllib包與http包的使用詳解

 更新時間:2018年05月10日 16:14:23   作者:ZJE_ANDY  
今天小編就為大家分享一篇對python3 urllib包與http包的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

urllib包和http包都是面向HTTP協議的。其中urllib主要用于處理 URL,使用urllib操作URL可以像使用和打開本地文件一樣地操作。而 http包則實現了對 HTTP協議的封裝,是urllib.request模塊的底層。

1.urllib包簡介

2. http 包簡介

1.urllib包簡介

urllib包主要模塊有:

1.urllib.request -----用于打開 URL網址;

2.urllib.error ---------定義了常見的urllib.request會引發(fā)的異常;

3.urllib.parse---------用于解析 URL;

具體方法:

urllib.request.urlopen( url,data,proxies ) :用于打開 url

參數如下:

url:要進行操作的 URL地址

data:可選項。向URL 傳遞的數據。

proxies:可選項。使用的代理地址

import urllib.request
url = 'http://www.baidu.com'   #網頁為百度首頁
respone = urllib.request.urlopen(url) #打開url地址,并返回一個 HTTPRespone實例
html = respone.read().decode('utf-8') #調用實例的 read()方法,并用 utf-8進行解碼處理。就得出完整的百度的HTML文件
print(html) 

部分打印結果:

<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">
 <meta name="theme-color" content="#2932e1">
 <link rel="shortcut icon" href="/favicon.ico" rel="external nofollow" type="image/x-icon" />
 <link rel="search" type="application/opensearchdescription+xml" href="/content-search.xml" rel="external nofollow" title="百度搜索" /> 
 <link rel="icon" sizes="any" mask  rel="external nofollow" >

urllib.request.urlretrieve(url,filename,reporthook,data) :用于將 URL的HTML文件下載并保存為本地文件

參數如下:

url:要下載的網頁

filename:保存在主機的路徑,可選項。

reporthook:一個回調函數,可選項。

data:發(fā)送的數據,一般用于 post,可選項。

特別:關于urlretrieve()的回調函數reporthook:可以用來顯示下載的進度,幾乎已經封裝好

import urllib.request
def callbackfunc(blocknum, blocksize, totalsize): #這三個參數是由 urlretrieve自動賦值的
 '''回調函數
 @blocknum: 已經下載的數據塊
 @blocksize: 數據塊的大小
 @totalsize: 遠程文件的大小
 '''
 percent = 100.0 * blocknum * blocksize / totalsize
 if percent > 100:
  percent = 100
 print( "%.2f%%"% percent) #保留兩位小數
url = 'http://www.sina.com'
local = 'd:\\sina.html'        #下載的html文件保存在 d盤的sina.html里
urllib.request.urlretrieve(url,local,callbackfunc) #沒下載完一個數據塊,就會執(zhí)行回調函數一次

執(zhí)行結果:

//只顯示局部 
0.00% 
1.38% 
2.76% 
4.13% 
5.51% 
6.89% 

2. http包簡介

http包提供了 HTTP協議的一些功能,主要模塊有:

http.client --- 底層的 HTTP 協議的一些功能,可以為 urllib.request 模塊所用

http.server --- 提供了基于 socketserver模塊的基本 HTTP服務器類

http.cookies --- cookies 的管理工具

http.client :

HttpClient不是一個瀏覽器。它是一個客戶端的HTTP通信實現庫。HttpClient的目標是發(fā)送和接收HTTP報文。

兩個主要類(用于客戶端):

HTTPConnection :基于HTTP協議的客戶端,指定 URL(網址) 后,可以 發(fā)送請求報文 和 接收響應報文

HTTPRespone :基于 HTTP 協議的服務端回應。一旦用 HTTPConnection 成功連接,可以調用相關方法返回該實例(HTTPRequest實例)。

(1)HTTPConnection 的方法:

構造方法: HTTPConnection( host,port,[timeout] ) 返回一個HTTPConnection 實例

host:表示主機域名或 ip 地址

port:表示端口

timeout:阻塞操作將會在給定時間后超時??蛇x項

發(fā)送請求報文方法:HTTPConnection.request( method,url,body =None,headers = {} )

method:發(fā)送的操作,一般為 GET 或者 POST

url :進行操作的 url

body :所發(fā)送的數據

headers:發(fā)送的 HTTP頭部,是一個字典類型

獲取響應報文方法:HTTPConnection.getrespone( )

關閉與服務器的連接: HTTPConne.close()

發(fā)送一個頭部:HTTPConnection.putheader( header,args[ ] ) #頭部以一個字典方式發(fā)送

發(fā)送一個空白行到服務器,標志頭部Header的結束:HTTPConnection.endheaders( )

發(fā)送數據到服務器:HTTPConnection.send( data ) ,應該在endheaders()之后 和 getrespone()之前調用。

(2)HTTPRespone:

HTTPRespone對象:一旦用 HTTPConnection 成功連接,可以調用HTTPConnection.getrespone()返回該實例(HTTPRequest實例)。

HTTPRespone.getheader(name) :返回頭部中的 name 字段對應的值

HTTPRespone.getheaders( ) :以元組的方式返回整個頭部的信息

HTTPRespone.read() :返回響應報文中的body部分,也即正文部分

HTTPRespone.status #返回狀態(tài)碼

HTTPRespone.version #返回 HTTP協議版本

http 包應用實例 。

from http.client import HTTPConnection

con = HTTPConnection('www.baidu.com',80)
con.request('GET','/')   #發(fā)送請求報文
res = con.getresponse()   #獲取響應報文對象
print(res.status) #200 (表示狀態(tài)碼)
print(res.reason) #OK	 (表示狀態(tài)碼對應的意義)
print(res.read().decode('utf-8')) #打印www.baidu.com的html

以上這篇對python3 urllib包與http包的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python編程語言中pathlib模塊簡介及使用

    python編程語言中pathlib模塊簡介及使用

    pathlib模塊類似os模塊,包含了對創(chuàng)建和刪除目錄、讀寫文件、獲取文件所在目錄不同部分字段、判斷文件是否存在,是否為文件和文件夾、文件統計和匹配查找,這篇文章主要介紹了python編程語言中pathlib模塊簡介及使用,需要的朋友可以參考下
    2023-09-09
  • Python光學仿真教程實現光線追蹤

    Python光學仿真教程實現光線追蹤

    傳統的高斯光學是建立在傍軸近似基礎之上的理想成像理論,這種處理以物像關系為核心,通過基點對光路的成像特性進行描述。然而,傍軸近似在一定程度上犧牲了精確性,從而使得需要一套像差理論作為補充
    2021-10-10
  • 使用Python解決常見格式圖像讀取nii,dicom,mhd

    使用Python解決常見格式圖像讀取nii,dicom,mhd

    這篇文章主要介紹了使用Python解決常見格式圖像讀取nii,dicom,mhd,下文具體操作過程需要的小伙伴可以參考一下
    2022-04-04
  • Python?flask?sqlalchemy的簡單使用及常用操作

    Python?flask?sqlalchemy的簡單使用及常用操作

    這篇文章主要介紹了Python?flask?sqlalchemy的簡單使用及常用操作,在python中,常用的ORM工具就是sqlalchemy了。下面就以一個簡單的flask例子來說明吧,需要的小伙伴可以參考一下
    2022-08-08
  • 僅用50行代碼實現一個Python編寫的計算器的教程

    僅用50行代碼實現一個Python編寫的計算器的教程

    這篇文章主要介紹了僅用50行代碼實現一個Python編寫的計算器的教程,主要用到了PlyPlus庫使得核心代碼十分簡單,需要的朋友可以參考下
    2015-04-04
  • Python中使用urllib2模塊編寫爬蟲的簡單上手示例

    Python中使用urllib2模塊編寫爬蟲的簡單上手示例

    這篇文章主要介紹了Python中使用urllib2模塊編寫爬蟲的簡單上手示例,文中還介紹到了相關異常處理功能的添加,需要的朋友可以參考下
    2016-01-01
  • Python文件名的匹配之clob庫

    Python文件名的匹配之clob庫

    這篇文章主要介紹了Python文件名的匹配之clob庫,文中有非常詳細的代碼示例,對正在學習python的小伙伴們有很好地幫助喲,需要的朋友可以參考下
    2021-05-05
  • python實現計算器簡易版

    python實現計算器簡易版

    這篇文章主要為大家詳細介紹了python實現計算器簡易版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Python學習之魔法函數(filter,map,reduce)詳解

    Python學習之魔法函數(filter,map,reduce)詳解

    這篇文章我們將來學習一下,Python中的三個高級函數:filter()、map()、reduce(),這三個函數也被稱為魔法函數,感興趣的小伙伴可以了解一下
    2022-04-04
  • Python+OpenCV圖像處理——實現直線檢測

    Python+OpenCV圖像處理——實現直線檢測

    這篇文章主要介紹了Python+OpenCV如何實現直線檢測,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2020-10-10

最新評論

阿克| 莱州市| 贞丰县| 当涂县| 尼勒克县| 铁岭县| 航空| 清水县| 汶川县| 淅川县| 武城县| 屏山县| 兴业县| 饶平县| 辽源市| 志丹县| 咸丰县| 阳西县| 崇仁县| 台北县| 阳山县| 尼玛县| 平和县| 白水县| 淮北市| 常德市| 英超| 湖南省| 应用必备| 新邵县| 桃源县| 安乡县| 卫辉市| 林芝县| 重庆市| 名山县| 略阳县| 曲靖市| 迁西县| 稷山县| 三明市|