我有這樣的方法,當一個鏈接列表供應將得到子鏈接等等等等是:Python的遞歸爬行對於網址
def crawlSite(self, linksList):
finalList = []
for link in list(linksList):
if link not in finalList:
print link
finalList.append(link)
childLinks = self.getAllUniqueLinks(link)
length = len(childLinks)
print 'Total links for this page: ' + str(length)
self.crawlSite(childLinks)
return finalList
它最終會重演與同組鏈接我似乎無法弄清楚。當我移動if語句中的self.crawlSite(childLinks)
時。我一遍又一遍地重複列表中的第一項。
self.getAllUniqueLinks(link)
方法的背景獲取給定頁面的鏈接列表。它過濾到給定域內的所有可點擊鏈接。基本上我試圖做的是從網站獲取所有可點擊的鏈接。如果這不是所需的方法。你能推薦一個更好的方法來完成同樣的事情嗎?請考慮我對python相當陌生,可能不瞭解更復雜的方法。所以請解釋你的思維過程。如果你不介意:)
好的替代品。雖然使用默認參數比實例變量更不靈活,因爲您無法清除它;如果你想重新開始,你需要創建一個新的實例。 – agf
@agf,true,但參數的方法是線程安全的。這是一個折衷。 :) –