如何从存档中获取原始URL。短链接是否使用python?

如何从存档中获取原始URL。短链接是否使用python?,python,web-services,url,short-url,Python,Web Services,Url,Short Url,我想写一个函数,它以存档.is(或存档.fo,存档.li,或存档.day)链接作为输入,并给出原始站点的URL作为输出 例如,如果输入是'http://archive.is/9mIro“,则我希望输出为”http://www.dailytelegraph.com.au/news/nsw/australian-army-bans-male-recruits-to-get-female-numbers-up/news-story/69ee9dc1d4f8836e9cca7ca2e3e5680a“ 我

我想写一个函数,它以
存档.is
(或
存档.fo
存档.li
,或
存档.day
)链接作为输入,并给出原始站点的URL作为输出

例如,如果输入是
'http://archive.is/9mIro“
,则我希望输出为
”http://www.dailytelegraph.com.au/news/nsw/australian-army-bans-male-recruits-to-get-female-numbers-up/news-story/69ee9dc1d4f8836e9cca7ca2e3e5680a“


我如何在python中做到这一点?

是的,您的方法可能适用于其他站点,但
存档.is
似乎可以保护他们的数据不受自动查询的影响,当我尝试curl时,python(urllib2)从服务器得到错误
的空回复。您需要类似于phantomjs的东西来模拟真实的浏览器。我相信它只适用于少数查询,然后会显示验证码或给出错误。此外,它们似乎还记录ip地址,甚至PhantomJ也会从尝试curl或python的同一台机器上获得错误

以下是有效的phantomjs代码:

var webPage=require('webPage');
var page=webPage.create();
var系统=要求(“系统”);
var args=system.args;
page.settings.userAgent='Mozilla/5.0(windowsnt 6.1;WOW64)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/37.0.2062.120 Safari/537.36';
函数getOriginalUrl(shortUrl,cb){
页面打开(短URL、函数(状态){
//控制台日志(状态);
var url=page.evaluate(函数(){
return document.querySelector('form input')。值;
});
cb(url);
});
}
如果(参数长度>1){
getOriginalUrl(参数[1],函数(url){
console.log(url);
phantom.exit();
});
}否则{
log('passurl');
phantom.exit();
}

在做了一些研究之后,我将采用的方法(除非有人有更好的想法)是使用BeautifulSoup在归档页面的头部获取
href
字段,然后使用regexp从中获取原始url。