我正在尝试在 python 中制作一个小的网络爬虫。现在似乎让我绊倒的是这个问题的递归部分和深度。给定一个 url 和一个我想链接到的站点的最大深度,然后将 url 添加到搜索的站点集,并从站点下载所有文本和链接。对于 url 中包含的所有链接,我想搜索每个链接并获取它的单词和链接。问题是,当我去递归调用下一个 url 时,深度已经是 maxDepth 并且它在只多一页后停止。希望我能体面地解释它,基本上我要问的问题是如何进行所有递归调用,然后设置 self._depth += 1?
def crawl(self,url,maxDepth):
self._listOfCrawled.add(url)
text = crawler_util.textFromURL(url).split()
for each in text:
self._index[each] = url
links = crawler_util.linksFromURL(url)
if self._depth < maxDepth:
self._depth = self._depth + 1
for i in links:
if i not in self._listOfCrawled:
self.crawl(i,maxDepth)