【问题标题】:Fast expansion of shortened URLs using python使用 python 快速扩展缩短的 URL
【发布时间】:2015-07-25 05:57:35
【问题描述】:

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

目前我正在使用:

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

展开它们。

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

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

【问题讨论】:

  • 你是按顺序做请求的吗?
  • 是的,我正在按顺序执行请求。
  • 你想把一个短网址转换成普通网址吗?
  • @Ajay 是的。并在很短的时间内完成。
  • 尝试请求模块。urllib会更好

标签: python urllib2 url-shortener urlopen


【解决方案1】:

我怀疑问题是网络调用很慢,并且 urllib 会阻塞,直到它得到响应。因此,例如,假设从 URL 缩短服务获得响应需要 200 毫秒,那么使用 urllib 每秒只能解析 5 个 URL。但是,如果您使用异步库,您应该能够在获得第一个答案之前发送大量请求。然后在响应返回到您的代码时对其进行处理。这应该会显着提高您的吞吐量。有一些 Python 库可用于此类事情(Twisted、gevent 等),因此您可能只想在 Google 上搜索“Python async rest”。

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

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

【讨论】:

  • 我怀疑 URL 缩短服务器可能对来自单个 IP 地址的这种颠簸不太满意并开始阻止。当心!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 2021-07-21
相关资源
最近更新 更多