私はpythonが初めてで、以下のコードで:新しく発見されたリンクを再帰するクローラーがあります。ルートリンクを再帰した後、いくつかのリンクを印刷した後にプログラムが停止したように見えます.これはしばらく続くはずですが、そうではありません. 例外をキャッチして出力していますが、プログラムは正常に終了するため、停止する理由がよくわかりません。
from urllib import urlopen
from bs4 import BeautifulSoup
def crawl(url, seen):
try:
if any(url in s for s in seen):
return 0
html = urlopen(url).read()
soup = BeautifulSoup(html)
for tag in soup.findAll('a', href=True):
str = tag['href']
if 'http' in str:
print tag['href']
seen.append(str)
print "--------------"
crawl(str, seen)
except Exception, e:
print e
return 0
def main ():
print "$ = " , crawl("http://news.google.ca", [])
if __name__ == "__main__":
main()