最近想上手Python。快速入門1門語(yǔ)言的方法就是寫個(gè)小Demo。Python Demo必須是爬蟲了。第1個(gè)小爬蟲程序有些簡(jiǎn)陋,高手勿噴。
關(guān)于爬蟲主要分為3個(gè)部份:根據(jù)隊(duì)列中的URL爬取界面、獲得內(nèi)容、保存結(jié)果。
程序是以百度網(wǎng)站大全為種子URL,抓取頁(yè)面中URL順次放入隊(duì)列中,爬蟲從URL隊(duì)列順次獲得新URL繼續(xù)向外爬取。
# -*- coding: utf⑻ -*-
import urllib2
import re
import thread
import time
class HTML_Spider:
def __init__(self):
self.url = []
#根據(jù)隊(duì)列中的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'當(dāng)前URL不合法'
myPage = ' '
return myPage
#以HTML的情勢(shì)保存界面
def SavePage(self,page):
if page != ' ':
#以時(shí)間戳的情勢(shì)為文件命名
f = open(time.strftime(str(time.time()),time.localtime(time.time()))+'.html','w+')#解決pagenama問題,最好采取保存時(shí)間命名
f.write(page)
f.close()
#保持URL隊(duì)列
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函數(shù)
print u'開始爬取頁(yè)面:'
raw_input(" ")
mySpider = HTML_Spider()
mySpider.StartSpider()