urllib模塊的使用

在Python3.3之后的版本,urllib2庫現(xiàn)在可以用import urllib.request的方法引用。

import urllib.request

url =r'http://www.baidu.com'
#編碼
newUrl1 = urllib.request.quote(url)
print(newUrl1)
#解碼
newUrl2 = urllib.request.unquote(url)
print(newUrl2)


#向指定的url發(fā)起請求集惋,并返回服務器響應的數(shù)據(jù)(文件的對象)
response = urllib.request.urlopen(url)

#data = response.read()

#data = response.readline()        #三種讀取數(shù)據(jù)的方式

data = response.readlines()

#一步把爬取的文件寫到本地
urllib.request.urlretrieve('http://www.baidu.com', filename=r'C:\Users\Administrator\AppData\Local\Programs\Python\Python37\file.html')
#urlretrieve在執(zhí)行過程中會產(chǎn)生緩存勃教,用久了會影響性能科汗,需要清除緩存
urllib.request.urlcleanup()

print(data)

'''
1.基本方法

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

-         url:  需要打開的網(wǎng)址

-         data:Post提交的數(shù)據(jù)

-         timeout:設(shè)置網(wǎng)站的訪問超時時間

直接用urllib.request模塊的urlopen()獲取頁面酿秸,page的數(shù)據(jù)格式為bytes類型梗掰,需要decode()解碼嵌言,轉(zhuǎn)換成str類型。
urlopen返回對象提供方法:
-         read() , readline() ,readlines() , fileno() , close() :對HTTPResponse類型數(shù)據(jù)進行操作
-         info():返回HTTPMessage對象及穗,表示遠程服務器返回的頭信息
-         getcode():返回Http狀態(tài)碼摧茴。如果是http請求,200請求成功完成;404網(wǎng)址未找到
-         geturl():返回請求的url

2.使用Request

urllib.request.Request(url, data=None, headers={}, method=None)

使用request()來包裝請求埂陆,再通過urlopen()獲取頁面苛白。

用來包裝頭部的數(shù)據(jù):
-         User-Agent :這個頭部可以攜帶如下幾條信息:瀏覽器名和版本號、操作系統(tǒng)名和版本號焚虱、默認語言
-         Referer:可以用來防止盜鏈购裙,有一些網(wǎng)站圖片顯示來源http://***.com,就是檢查Referer來鑒定的
-         Connection:表示連接狀態(tài)著摔,記錄Session的狀態(tài)缓窜。

3.Post數(shù)據(jù)

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

urlopen()的data參數(shù)默認為None,當data參數(shù)不為空的時候,urlopen()提交方式為Post御雕。

urllib.parse.urlencode(query, doseq=False, safe='', encoding=None, errors=None)

urlencode()主要作用就是將url附上要提交的數(shù)據(jù)垛玻。 

總結(jié):

如果只是單純的下載或者顯示下載進度,不對下載后的內(nèi)容做處理等恩掷,比如下載圖片,css供嚎,js文件等黄娘,可以用urlilb.urlretrieve()
如果是下載的請求需要填寫表單,輸入賬號克滴,密碼等逼争,建議用urllib2.urlopen(urllib2.Request())
在對字典數(shù)據(jù)編碼時候,用到的是urllib.urlencode()
具體代碼和方法:
http://www.cnblogs.com/Lands-ljk/p/5447127.html

'''
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劝赔,一起剝皮案震驚了整個濱河市誓焦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌着帽,老刑警劉巖杂伟,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仍翰,居然都是意外死亡赫粥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門予借,熙熙樓的掌柜王于貴愁眉苦臉地迎上來越平,“玉大人频蛔,你說我怎么就攤上這事∏嘏眩” “怎么了帽驯?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長书闸。 經(jīng)常有香客問我尼变,道長,這世上最難降的妖魔是什么浆劲? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任嫌术,我火速辦了婚禮,結(jié)果婚禮上牌借,老公的妹妹穿的比我還像新娘度气。我一直安慰自己,他們只是感情好膨报,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布磷籍。 她就那樣靜靜地躺著,像睡著了一般现柠。 火紅的嫁衣襯著肌膚如雪院领。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天够吩,我揣著相機與錄音比然,去河邊找鬼。 笑死周循,一個胖子當著我的面吹牛强法,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播湾笛,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼饮怯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嚎研?” 一聲冷哼從身側(cè)響起蓖墅,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嘉赎,沒想到半個月后置媳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體于樟,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡公条,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了迂曲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片靶橱。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出关霸,到底是詐尸還是另有隱情传黄,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布队寇,位于F島的核電站膘掰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏佳遣。R本人自食惡果不足惜识埋,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望零渐。 院中可真熱鬧窒舟,春花似錦、人聲如沸诵盼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽风宁。三九已至洁墙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間戒财,已是汗流浹背扫俺。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留固翰,地道東北人狼纬。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像骂际,于是被迫代替她去往敵國和親疗琉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容