urllib是python自帶庫,不要專門安裝,還挺好用的。html
腳本語言的好處之一就是隨寫隨用,有些東西用C語言寫真的是能把人累死,換成python就是幾行代碼,so easy,對於喜歡偷懶的同窗絕對是上帝的禮物~~~python
目前我用到的兩個經常使用函數是urlopen, read, urlretrieve這三個函數,講一下簡單的功能,看其餘的請移步https://docs.python.org/2/library/urllib.html#urllib.urlopen。正則表達式
urlopen函數能夠用來打開http的網頁連接,挺好用的,而後read函數可以直接獲取html文本。樣例腳本以下:網頁爬蟲
1 import urllib 2 3 url_obj = urllib.urlopen ( 'http://www.cnblogs.com/' ) 4 htmlfile = url_obj.read ()
代碼只有2行,第一行是打開這個網站,第二行是直接獲取html的文件,操做流程很簡單,有這個基礎,組織下數據存儲,搞個網頁爬蟲的基礎就有了。函數
而後在網上看了下,有這樣一段代碼,用來扒網站上圖片的:網站
1 #coding=utf-8 2 import urllib 3 import re 4 5 def getHtml(url): 6 page = urllib.urlopen(url) 7 html = page.read() 8 return html 9 10 def getImg(html): 11 reg = r'src="(.+?\.jpg)" pic_ext' 12 imgre = re.compile(reg) 13 imglist = re.findall(imgre,html) 14 x = 0 15 for imgurl in imglist: 16 urllib.urlretrieve(imgurl,'%s.jpg' % x) 17 x+=1 18 return x 19 20 21 html = getHtml("http://tieba.baidu.com/p/2460150866") 22 23 print getImg(html)
上面這段示例代碼水平寫得挺不錯的,應該是常用python的高手寫的,沒什麼多餘的東西,刀刀入肉。python網站上寫的這個函數介紹。url
在urlretrieve函數中若是隻傳入兩個參數,那麼第二個參數將做爲文件名,保存在python腳本文件所在的路徑下。應該也是支持絕對路徑的。試驗了一下,確實支持。spa
研究了下這個函數的入參格式,也是http\https格式開頭的url:code
而後看了下代碼的格式,寫正則表達式的時候,用了(),應該是經過這個取出來的,python的正則表達式以前用過,已通過去很久了。htm