urlopen一般接受三個(gè)參數(shù),它的參數(shù)如下:
urlopen(url,data,timeout)
第一個(gè)參數(shù)url即為URL,第二個(gè)參數(shù)data是訪問URL時(shí)要傳送的數(shù)據(jù),第三個(gè)timeout是設(shè)置超時(shí)時(shí)間。
第二三個(gè)參數(shù)是可以不傳送的,data默認(rèn)為空None,timeout默認(rèn)為 socket._GLOBAL_DEFAULT_TIMEOUT
執(zhí)行urlopen方法之后,返回一個(gè)response對(duì)象,返回信息便保存在這里面
#也可以用其他的變量比如aaa
response對(duì)象有一個(gè)read方法,可以返回獲取到的網(wǎng)頁內(nèi)容
其實(shí)上面的urlopen參數(shù)可以傳入一個(gè)request請(qǐng)求,它其實(shí)就是一個(gè)Request類的實(shí)例,構(gòu)造時(shí)需要傳入U(xiǎn)rl,Data等等的內(nèi)容。比如上面的兩行代碼,我們可以這么改寫
import urllib2
response = urllib2.urlopen("http://www.baidu.com")
print response.read()
改寫成
import urllib2
request=urllib2.Request("http://www.baidu.com")
response=urllib2.urlopen(request)
print response.read()
運(yùn)行結(jié)果是完全一樣的,只不過中間多了一個(gè)request對(duì)象,推薦大家這么寫,因?yàn)樵跇?gòu)建請(qǐng)求時(shí)還需要加入好多內(nèi)容,通過構(gòu)建一個(gè)request,服務(wù)器響應(yīng)請(qǐng)求得到應(yīng)答,這樣顯得邏輯上清晰明確。
數(shù)據(jù)傳送分為POST和GET兩種方式,兩種方式有什么區(qū)別呢?
最重要的區(qū)別是GET方式是直接以鏈接形式訪問,鏈接中包含了所有的參數(shù),當(dāng)然如果包含了密碼的話是一種不安全的選擇,不過你可以直觀地看到自己提交了什么內(nèi)容。POST則不會(huì)在網(wǎng)址上顯示所有的參數(shù),不過如果你想直接查看提交了什么就不太方便了,大家可以酌情選擇。
參考自:? http://python.jobbole.com/81336/