请教大家一个问题
我要抽取一个URL地址下的email,使用递归来进行深层抽取,但当遇到某个url页面下没有email的时候,就循环不下去了(报错)。我想让一直执行下去,该如何写呢?请大家帮帮忙!
def test3(url,from_deep_ctr)
next_deep_ctr = from_deep_ctr + 1
if next_deep_ctr > 3
return
end
@link = []
@result = []
#抽取url下的link并判断是否为email
doc = Hpricot(open(url))
doc.search('//a').each do |a|
a.attributes['href'].each do |link|
check_mail(link)
@link << link
end
end
#判断url的合法性以及是否为该站点内的url
urlRE = /^http\:\/\/[-a-z0-9]+(\.[-a-z0-9]+)*\.(net|com|cn|edu|info)/
for alink in @link
if alink =~ urlRE && URI.parse(alink).host == URI.parse(url).host
@result << alink
end
end
#递归来实现深层抽取
for result in @result
test3(result,next_deep_ctr)
end
end