本文所謂的爬蟲就是通過本地遠程訪問url,然后將url的讀成源代碼形式,然后對源代碼進行解析,獲取自己需要的數據,相當於簡單數據挖掘。本文實現的是將一個網頁的圖片爬出保存到本地的過程,例子很簡單,用的是python 3.5.2版本,以前的版本可能導入的包的名字不一樣,調用的庫函數方式有些差別。代碼如下:
#coding =utf-8 import urllib.request import re def getHtml(url): page = urllib.request.urlopen(url) ##打開頁面 html = page.read() ##獲取目標頁面的源碼 return html def getImg(html): reg = 'src="(.+?\.png)"' ##正則表達式篩選目標圖片格式,有些是'data-original="(.+?\.jpg)"' img = re.compile(reg) html = html.decode('utf-8') ##編碼方式為utf-8 imglist = 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 += 1 global Max_Num Max_Num = 1 ##有時候無法打開目標網頁,需要嘗試多次,這里設置為1次 for i in range(Max_Num): try: html = getHtml("view-source:http://www.shangxueba.com/jingyan/2438398.html") getImg(html) break except: if i < Max_Num - 1: continue else: print ('URLError: <urlopen error timed out> All times is failed ')