get方法:通常用於請求伺服器傳送某個資源,而且應該是安全的和冪等的。
post方法:向伺服器提交資料,比如完成表單資料的提交,將資料提交給伺服器處理
get和post方法的區別:
urlopen(url,data=none,timeout=)
傳遞乙個url引數,新增post需要的data,返回值是乙個類似於file的物件,可以通過檔案操作來操作這個物件
urlib2.urlopen()引數可以用乙個request的物件來代替url,而且增加了乙個urlerror異常,對於http協議的錯誤,增加了乙個httperror的異常,其中這個httperror自動變成乙個合法的response來返回。
import urllib2
url = ""
response = urllib2.urlopen(url)
print response.info()
其中,response.info()可以獲取返回來的http response head 的資訊,response.read()用來獲取response body 的資訊。
如果預設只有乙個url引數,那麼預設是使用http get的方法來訪問url
urlopen()還可以使用request物件作為引數,不過首先我們得先建立乙個request的物件,通過request類來完成,request類有很多方法,比較常用的是add_header(self,key,val)方法,這個方法可以新增我們自己的http header。
import urllib2
request = urllib2.request("")
request.add_header('user-agent','internet explorer')
try:
response = urllib2.urlopen(request)
except urllib2.urlerror, e:
print e.code
headers = response.info()
data = response.read()
這樣http request頭部中的user-agent就變成了internet explorer,如果建立request時不新增data,預設使用get方法,如果新增data,那麼使用post方法。
對於簡單的請求,urlopen()的引數url就是乙個代表url的,但是如果需要執行更複雜的操作,如修改http報頭,可以建立request例項並將其作為url引數。
引數:假設request例項r,其比較重要的方法有下面幾個:
r.add_data(data):向請求新增資料。如果請求時http請求,則方法改為'post'。
data是向指定url提交的資料,該方法不會將data追加到已經設定的data資料上,而是使用現在的data替換之前的。
r.add_header(key,val):向請求新增header資訊,key是報頭名,val是報頭值,兩個引數都是字串。
r.addunredirectedheader(key,val):作用同上,但不會新增到重定向請求中。
r.set_proxy(host,tyoe):準備請求到伺服器,使用host替換原來的主機,使用type替換原來的請求型別。
import urllib
import urllib2
url = ''
values =
data = urllib.urlencode(values)
req = urllib2.request(url, data)
response = urllib.urlopen(req)
the_page = response.read()
PYTHON學習筆記之URLLIB2
python 2.7.5 urllib2.request url data headers origin req host unverifiable 的方法有add data data get method has data get data add header key,val add unred...
把玩之python爬蟲urllib2
1,什麼是urllib2庫?urllib2是python的乙個獲取urls的元件,通過urlopen函式的形式來提供了乙個非常簡單的介面,根據不同協議獲取urls的能力,urllib2提供了乙個比較復 雜的介面來處理情況,例如 基礎驗證,cookies,和其他。我們分析 response urlli...
Python開發 urllib2異常處理
一 urllib2模組回顧 urllib2模組中最重要的函式是urlopen 函式,用於獲取urls資源 uniform resorce locators urlopen函式不僅可以用於簡單的情況,還可以進行複雜情況下的資源獲取如認證 authentication cookies 等。urlopen...