我在网页上写了一个函数,即爬虫(url)。虽然是真的,但如果没有任何进展,它应该继续运行。我有一个返回整个函数,它返回,所以我知道它停止了。我为每个圆圈打印了所有可以打印的内容,一切看起来都很完美。只是因为某种原因停止了,我不知道。
逻辑是我有一个初始urls[]
,
,
从urls
,
如果网址不在parent
中,请将其放入,否则请继续
抓取工具links
,使用函数抓取工具
将网址放入parent
,将links
放入children
将链接不在父级newUrl
如果到达urls
,urls=newurls, newurls=null
但由于某种原因,循环只能运行30次以上,我检查了那里还有很多儿童链接,所以我不明白为什么它会停止。
newUrl=[]
parent = []
children =[]
cloud =[]
i=0
n=0
while n<100:
n+=1
url = urls[i]
if url in parent:
i += 1
continue
(links,titles) = crawler(url)
parent.append(url)
links = list(set(links))
children.append(",".join(links))
cloud.append(titles)
links = [link for link in links if link not in parent]
newUrl= newUrl+links # is there anyone realy have a look on code
print(len(parent)) # I guess noone did
i += 1
if i == len(urls):
urls = list(set(newUrl))
newUrl = []
i=0
print (n)
答案 0 :(得分:0)
在n达到100之前唯一可能导致while循环退出的事情是异常。
如果您的程序内存不足,可能会发生异常,因为爬虫函数调用自身的无限递归(不太可能在您的新代码中限制为100),或者您的索引i超出了urls数组边界,您的程序逻辑可能导致的,或者由于其他一些难以预测的原因。