嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元微信扫码支付:1 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
基于DFS和BFS的Python爬虫简易框架
# 当爬行任务非空,并且爬行的页面没有超过设定值时, 一直爬行
while self.UrlSequence.UnvisitedIsEmpty() is False and self.UrlSequence.Visited_Count() <= max_count:
# 对于宽度优先或深度优先,分别使用Dequeue,pop
if flag == 1: # using BFS
visitUrl = self.UrlSequence.Unvisited_Dequeue()
else: # using DFS
visitUrl = self.UrlSequence.Unvisited_Pop()
print ("Pop out one url \"%s\" from unvisited url list" % visitUrl)
if visitUrl in self.UrlSequence.visited or visitUrl is None or visitUrl == "":
continue
# 抓取页面,并提取页面中的超链接到links中
links = self.getLinks(visitUrl)
print ( "Get %d new links" % len(links))
# 保存到已抓取的任务中
self.UrlSequence.Visited_Add(visitUrl)
print ("Visited url count: " str(self.UrlSequence.Visited_Count()))
# 将新提取出的超链接保存到未抓取的任务中
for link in links:
self.UrlSequence.Unvisited_Add(link)
print ("%d unvisited links:" % len(self.UrlSequence.getUnvisitedUrl()))