我写了一个脚本,将经历都在我们数据库中的客户,确认他们的网站URL的作品,并试图找到他们的主页的链接的Twitter。 我们有超过10,000一点的网址进行验证。 如果网址已经核实的一小部分后,我们开始获得的getaddrinfo每一个URL错误。
下面是擦伤单个URL代码的副本:
def scrape_url(url)
url_found = false
twitter_name = nil
begin
agent = Mechanize.new do |a|
a.follow_meta_refresh = true
end
agent.get(normalize_url(url)) do |page|
url_found = true
twitter_name = find_twitter_name(page)
end
@err << "[#{@current_record}] SUCCESS\n"
rescue Exception => e
@err << "[#{@current_record}] ERROR (#{url}): "
@err << e.message
@err << "\n"
end
[url_found, twitter_name]
end
注:我也运行一个版本的代码,创建一个共享得到所有来电scrape_url一个机械化实例。 它没有在完全相同的方式。
当我在EC2上运行此,它获得通过几乎完全1000个网址,然后返回该错误的剩余9,000+:
getaddrinfo: Temporary failure in name resolution
请注意,我同时使用Amazon的DNS服务器和谷歌的DNS服务器尝试,认为它可能是一个合法的DNS的问题。 我正是在这两种情况下相同的结果。
于是,我试图在我的本地的MacBook Pro运行它。 它只能通过约250得到的的记录,其余返回这个错误之前:
getaddrinfo: nodename nor servname provided, or not known
有谁知道我怎样才能拿到剧本通过所有的记录做呢?