本文所謂的爬蟲就是通過本地遠端存取url,然後將url的讀成原始碼形式,然後對原始碼進行解析,擷取自己需要的資料,相當於簡單資料採礦。本文實現的是將一個網頁的圖片爬出儲存到本地的過程,例子很簡單,用的是python 3.5.2版本,以前的版本可能匯入的包的名字不一樣,調用的庫函數方式有些差別。代碼如下:
#coding =utf-8import urllib.requestimport redef getHtml(url):page = urllib.request.urlopen(url) ##開啟頁面html = page.read() ##擷取目標頁面的源碼return htmldef getImg(html):reg = 'src="(.+?\.png)"' ##Regex篩選靶心圖表片格式,有些是'data-original="(.+?\.jpg)"'img = re.compile(reg)html = html.decode('utf-8') ##編碼方式為utf-8imglist = re.findall(img, html) ##解析頁面源碼擷取圖片列表#print(imglist)x = 0#length = len(imglist)for i in range(6): ##取前6張圖片儲存imgurl = imglist[i]#imgurl = re.sub('"(.*?)"',r'\1',imgurl) #取單引號裡的雙引號內容#print(imgurl)urllib.request.urlretrieve(imgurl,'%s.jpg' % x) ##將圖片從遠程下載到本地並儲存x += 1global Max_NumMax_Num = 1##有時候無法開啟目標網頁,需要嘗試多次,這裡設定為1次for i in range(Max_Num):try:html = getHtml("view-source:http://www.shangxueba.com/jingyan/2438398.html")getImg(html)breakexcept:if i < Max_Num - 1:continueelse:print ('URLError: <urlopen error timed out> All times is failed ')