最近想上手Python??焖偃腴T1門語言的方法就是寫個小Demo。Python Demo必須是爬蟲了。第1個小爬蟲程序有些簡陋,高手勿噴。
關于爬蟲主要分為3個部份:根據隊列中的URL爬取界面、獲得內容、保存結果。
程序是以百度網站大全為種子URL,抓取頁面中URL順次放入隊列中,爬蟲從URL隊列順次獲得新URL繼續向外爬取。
# -*- coding: utf⑻ -*-
import urllib2
import re
import thread
import time
class HTML_Spider:
def __init__(self):
self.url = []
#根據隊列中的URL爬取界面
def GetPage(self,url):
try:
myResponce = urllib2.urlopen(url)
myPage = myResponce.read()
myUrl = re.findall('href="(.*?)"',myPage,re.S)
self.url.extend(myUrl);
except:
print u'當前URL不合法'
myPage = ' '
return myPage
#以HTML的情勢保存界面
def SavePage(self,page):
if page != ' ':
#以時間戳的情勢為文件命名
f = open(time.strftime(str(time.time()),time.localtime(time.time()))+'.html','w+')#解決pagenama問題,最好采取保存時間命名
f.write(page)
f.close()
#保持URL隊列
def StartSpider(self):
i = 1
while 1:
if i == 1:
url = u'http://site.baidu.com/'
else:
url = self.url[i]
i += 1
print url
page = self.GetPage(url)
self.SavePage(page)
#程序main函數
print u'開始爬取頁面:'
raw_input(" ")
mySpider = HTML_Spider()
mySpider.StartSpider()