Python-urllib學習記錄

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

相關文章
相關標籤/搜索