【发布时间】:2011-04-21 08:00:01
【问题描述】:
我需要检查很多(约 1000 万)个 URL 以查看它们是否存在(返回 200)。我已经编写了以下代码来针对每个 URL 执行此操作,但是执行所有 URL 大约需要很长时间。
def is_200(url):
try:
parsed = urlparse(url)
conn = httplib.HTTPConnection(parsed.netloc)
conn.request("HEAD", parsed.path)
res = conn.getresponse()
return res.status == 200
except KeyboardInterrupt, e:
raise e
except:
return False
这些 URL 分布在大约十几个主机上,因此我似乎应该能够利用这一点来处理我的请求并减少连接开销。你会如何建造这个?我对任何编程/脚本语言持开放态度。
【问题讨论】:
-
也许 node.js 在这里会有所帮助,因为它执行异步 I/O,其扩展性比阻塞线程更好。此外,如果可用,您可以为此使用一组机器。