最近想上手Python。快速入门1门语言的方法就是写个小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()