学問的にもパフォーマンス上の理由から、このクロールの再帰的なWebクローリング機能(指定されたドメイン内でのみクロールする)が繰り返し実行される最良の方法は何ですか?現在のところ、それが終了するまでに、Pythonは1GB以上のメモリを使用するようになりました。これは共有環境での実行には受け入れられません。この再帰的クロール機能を反復的にするにはどうすればよいですか?
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])
良い仕事mehrdad –