python中urllib2的學習

2021-09-25 05:26:48 字數 1871 閱讀 9609

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...