使用python快速扩展缩短的URL

时间:2015-05-13 19:13:36

标签: python urllib2 url-shortener urlopen

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

目前我正在使用:

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

扩展它们。

urlopen()方法似乎在扩展网址时速度非常快。

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

1 个答案:

答案 0 :(得分:5)

我怀疑问题是网络调用很慢并且urllib阻塞直到它得到响应。因此,例如,说从URL缩短服务获得响应需要200ms,那么您将只能使用urllib解析5个URL /秒。但是,如果您使用异步库,则应该能够在获得第一个答案之前发送大量请求。然后在回复到您的代码时处理响应。这应该会大大提高您的吞吐量。这类东西有一些Python库(Twisted,gevent等),所以你可能只想谷歌“Python异步休息”。

您也可以尝试使用大量线程执行此操作(我认为urllib2会在等待响应时释放GIL,但不确定)。这不会像异步一样快,但仍应该加快速度。

这两种解决方案都带来了相当多的复杂性,但是如果你想快点......