Pour des raisons académiques et de performance, compte tenu de cette fonction d'exploration Web récursive (qui explore uniquement dans le domaine donné), quelle serait la meilleure approche pour la faire fonctionner de manière itérative? Actuellement, quand il s'exécute, au moment où il se termine python a grimpé à l'aide de plus de 1 Go de mémoire qui n'est pas acceptable pour s'exécuter dans un environnement partagé.Comment rendre cette fonction d'exploration récursive itérative?
def crawl(self, url):
"Get all URLS from which to scrape categories."
try:
links = BeautifulSoup(urllib2.urlopen(url)).findAll(Crawler._match_tag)
except urllib2.HTTPError:
return
for link in links:
for attr in link.attrs:
if Crawler._match_attr(attr):
if Crawler._is_category(attr):
pass
elif attr[1] not in self._crawled:
self._crawled.append(attr[1])
self.crawl(attr[1])
bon travail mehrdad –