Pythonで小さなWebクローラーを作成しようとしています。今私をつまずかせているように見えるのは、この問題の再帰的な部分と深さです。そこからリンクしたいサイトの数のURLとmaxDepthを指定して、検索したサイトのセットにURLを追加し、サイトからすべてのテキストとリンクをダウンロードします。URLに含まれるすべてのリンクについて、各リンクを検索して、その単語とリンクを取得したいと思います。問題は、次のURLを再帰的に呼び出すと、深さがすでにmaxDepthにあり、あと1ページだけ移動すると停止することです。うまくいけば、それをきちんと説明しました。基本的に、私が尋ねている質問は、すべての再帰呼び出しを実行してから、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)