正常用python抓取網頁資訊,需要用到urllib2,呼叫urllib2.urlopen(url),可以獲得response 反饋資訊,再用response.read()即可獲得頁面的原始碼。
最簡單的抓包**:
import urllib2
response = urllib2.urlopen('')
html = response.read()
print html
下面來說一說urllib2中的兩個重要概念:openers和handlers。
1.openers:
當你獲取乙個url你使用乙個opener(乙個urllib2.openerdirector的例項)。
正常情況下,我們使用預設opener:通過urlopen。
但你能夠建立個性的openers。
2.handles:
openers使用處理器handlers,所有的「繁重」工作由handlers處理。
每個handlers知道如何通過特定協議開啟urls,或者如何處理url開啟時的各個方面。
在你使用**上網或其他的情況就需要自己建立乙個 opener,可以例項化乙個openerdirector,
然後呼叫.add_handler(some_handler_instance)。
同樣,可以使用build_opener,這是乙個更加方便的函式,用來建立opener物件,他只需要一次函式呼叫。
build_opener預設新增幾個處理器,但提供快捷的方法來新增或更新預設處理器。
其他的處理器handlers你或許會希望處理**,驗證,和其他常用但有點特殊的情況。
install_opener 用來建立(全域性)預設opener。這個表示呼叫urlopen將使用你安裝的opener。
opener物件有乙個open方法。
該方法可以像urlopen函式那樣直接用來獲取urls:通常不必呼叫install_opener,除了為了方便。
import urllib2
proxy_handler = urllib2.proxyhandler()
opener = urllib2.build_opener(proxy_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('')
html = response.read()
print html
import urllib2
proxy_handler = urllib2.proxyhandler()
opener = urllib2.build_opener(proxy_handler)
response = opener.open('')
html = response.read()
print html
python中urllib2的學習
get方法 通常用於請求伺服器傳送某個資源,而且應該是安全的和冪等的。post方法 向伺服器提交資料,比如完成表單資料的提交,將資料提交給伺服器處理 get和post方法的區別 urlopen url,data none,timeout 傳遞乙個url引數,新增post需要的data,返回值是乙個類...
自定義控制項(2)
自定義伺服器控制項屬性的特性 bindable 這個特性表示屬性是否可以繫結乙個有效資料來源。通常使用布林值進行設定。例如 bindable true 如果使用值true標記屬性,表示該屬性可以繫結乙個有效資料來源,且應引發該屬性的屬性更改通知。browsable 指定屬性是否應該在屬性瀏覽器中顯示...
JSF2中自定義Validator
寫過一篇關於jsf2中validator的實現,但那是jsf1中的實現方式,後來了解到jsf2中的實現其實更簡單,其實只需要倆步 1.定義validator類,並實現validator介面,並使用 facesvalidator註解 2.在頁面中應用 emailvalidator facesvalid...