使用python快速扩展缩短的URL - python

我正在编写Python代码以扩展从Twitter获取的缩短的URL。我已经获取了所有URL,并将它们存储在用换行符分隔的文本文件中。

目前,我正在使用:

response = urllib2.urlopen(url)
return response.url

扩大他们。

但是urlopen()方法在扩展URL方面似乎并不很快。

我有大约540万个URL。有没有使用Python扩展它们的更快方法?

python大神给出的解决方案

我怀疑问题在于网络调用速度很慢并且urllib一直阻塞,直到得到响应为止。因此,例如,假设从URL缩短服务获得响应需要200毫秒,那么您只能使用urllib每秒解析5个URL。但是,如果使用异步库,则应该能够在收到第一个答案之前发出大量请求。然后,响应将返回到您的代码中,然后进行处理。这将大大提高您的吞吐量。有一些用于此类事情的Python库(Twisted,gevent等),因此您可能只想向Google寻求“ Python异步休息”。

您也可以尝试使用许多线程来执行此操作(我认为urllib2在等待响应时会释放GIL,但不确定)。那不会像异步那样快,但是仍然可以使事情加速很多。

这两种解决方案都引入了相当多的复杂性,但是如果您想快速执行...