首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >检测缩短的或“小”的url的目的地

检测缩短的或“小”的url的目的地
EN

Stack Overflow用户
提问于 2010-03-16 20:11:10
回答 5查看 6.2K关注 0票数 20

我刚刚收集了一堆Google Buzz数据,我想知道哪些Buzz帖子引用了相同的新闻文章。问题是,这些帖子中的许多链接都被URL缩短程序修改了,因此可能会出现这样的情况:许多截然不同的缩短URL实际上都指向同一篇新闻文章。

鉴于我有数百万篇帖子,对我来说最有效的方式(最好是用python)是什么?

  1. 检测url是否是缩短的url (从许多URL缩短服务中的任何一个,或者至少是最大的)
  2. 查找缩短的URL的“目的地”,即缩短的URL的长的原始版本。

有没有人知道URL缩短服务是否有严格的请求速率限制?如果我把它降低到100/秒(都来自相同的IP地址),你认为我会遇到麻烦吗?

更新和初步解决方案这些响应导致了以下简单的解决方案

代码语言:javascript
复制
import urllib2
response = urllib2.urlopen("http://bit.ly/AoifeMcL_ID3") # Some shortened url
url_destination = response.url

就这样!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-16 20:37:18

获取缩短网址的目的地的最简单方法是使用urllib。假设短URL是有效的(响应代码200),则将该URL返回给您。

代码语言:javascript
复制
>>> import urllib
>>> resp = urllib.urlopen('http://bit.ly/bcFOko')
>>> resp.getcode()
200
>>> resp.url
'http://mrdoob.com/lab/javascript/harmony/'

就是这样!

票数 17
EN

Stack Overflow用户

发布于 2010-03-16 20:19:18

(AFAIK)大多数url缩短工具会跟踪已经缩短的URL,因此向同一引擎发出的具有相同URL的多个请求将返回相同的短代码。

正如已经提出的,提取真实URL的最好方法是从对缩短的url的请求的响应中读取头部。但是,一些缩写服务(例如bit.ly)提供了an API method来返回长url

票数 3
EN

Stack Overflow用户

发布于 2010-03-16 20:16:00

  1. 列出最常用的URL缩写程序,并在您发现新的url缩写程序时将其展开,然后检查列表中某一项的链接。
  2. 除非您遵循它,否则您不知道url指向何处,因此执行此操作的最佳方法应该是跟随缩短的url并提取响应的http标头,以查看其指向何处。

我猜每秒100个请求,你肯定会遇到麻烦(我猜测最坏的情况是他们把你的IP作为垃圾邮件发送者列入黑名单)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2454149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档