我正在网上查看有关如何构建搜索引擎的代码(链接如下)。作为一名新手程序员,我无法解释循环的方式。
Ruby代码:
def crawl_web(urls, depth=2, page_limit = 100)
depth.times do
next_urls = []
urls.each do |url|
url_object = open_url(url)
next if url_object == nil # [1]
url = update_url_if_redirected(url, url_object)
parsed_url = parse_url(url_object)
next if parsed_url == nil
@already_visited[url]=true if @already_visited[url] == nil # [2]
return if @already_visited.size == page_limit # [3]
next_urls += (find_urls_on_page(parsed_url, url)-@already_visited.keys)
next_urls.uniq!
end
urls = next_urls
end
end
问题:
任何建议都有帮助!感谢您的阅读!
链接: http://www.skorks.com/2009/07/how-to-write-a-web-crawler-in-ruby/
答案 0 :(得分:1)
@already_visited[url]
设置为true @already_visited
“列表”与页面限制大小相同时才返回。它实际上并没有返回任何东西,大多数工作似乎是在实例变量@already_visited
上完成的,因此不需要返回任何内容。