標籤:
這是在部落格園的第一篇文章,由於本人還是一個編程菜鳥,也寫不出那些高大上的牛逼文章,這篇文章就是對自己這段時間學習python的一個總結吧。
眾所周知python是一門對初學編程的人相當友好的程式設計語言,就像本屌絲一樣,一學就對它產生好感了!當然,想要精通它還有很多東西需要學習。那廢話不多說了,下面我就來說一下如何用python3.x與mysql資料庫構建一個簡單的爬蟲系統(其實就是把從網頁上爬下來的內容儲存到mysql資料庫中)。
首先就是搭建環境了,這裡就簡介紹一下我的環境吧。原生作業系統是win7,python版本是3.3,mysql資料庫版本是5.6,mysql-wokebench版本是5.2。
環境搭建完後,就可以開始來寫爬蟲了。這裡實驗的網站是鼠繪動漫網(本人是個漫畫迷^_^)。先去網站踩點,尋找我們需要的內容,這裡我只需要耙梳站的每一話
漫畫的名字與各漫畫的圖片連結。下面就直接上代碼啦
import urllib.requestimport refrom mysql.connector import *#爬取整個網頁的方法def open_url(url): req=urllib.request.Request(url) respond=urllib.request.urlopen(req) html=respond.read().decode(‘utf-8‘) return html#爬取每個頁面中每一話漫畫對應的連結def get_url_list(url): html=open_url(url) p=re.compile(r‘<a href="(.+)" title=".+ <br>.+?">‘) url_list=re.findall(p,html) return url_list#自動進入每一話漫畫對應的連結中爬取每一張圖片對應的連結並插入到mysql資料庫def get_img(url): #擷取每個頁面中每一話漫畫對應的連結 url_list=get_url_list(url) #串連mysql資料庫 conn=connect(user=‘root‘,password=‘‘,database=‘test2‘) #建立遊標 c=conn.cursor() try: #建立一張資料庫表 c.execute(‘create table cartoon(name varchar(30) ,img varchar(100))‘) except: #count用來計算每一張網頁有多少行資料被插入 count=0 for each_url in url_list: html=open_url(each_url) p1=re.compile(r‘<img src="(.+)" alt=".+?>‘) p2=re.compile(r‘<h1>(.+)</h1>‘) img_list=re.findall(p1,html) title=re.findall(p2,html) for each_img in img_list: c.execute(‘insert into cartoon values(%s,%s)‘,[title[0],each_img]) count+=c.rowcount print(‘有%d行資料被插入‘%count) finally: #提交資料,這一步很重要哦! conn.commit() #以下兩步把遊標與資料庫連接都關閉,這也是必須的! c.close() conn.close() num=int(input(‘前幾頁:‘)) for i in range(num): url=‘http://www.ishuhui.com/page/‘+str(i+1) get_img(url)
這是資料庫的結果:
代碼已經注釋的很清晰了。這裡需要注意的是要去下載mysql-connector-python模組,這是一個python與mysql串連的模組,直接
pip install mysql-connector-python --allow-external mysql-connector-python
可以看出用python寫爬蟲並把資料存入資料庫是很簡單的,這也是python優雅的地方!當然,這隻是一個很簡單的爬蟲系統,還有很多細節要去完善,只適合小
資料。但是學習都是從簡單的開始嘛。
http://www.cnblogs.com/tester-zhenghan/p/4887838.html
用python3.x與mysql資料庫構建簡單的爬蟲系統(轉)