Srp
18

Jak na překlad zkrácených URL adres (bit.ly a další)

By majlan  //  Python, Tipy, Webová tvorba  //  Komentářů: 2

Těchto „zkracovačů“ existuje celá řada, například bit.ly nebo také googlovský goo.gl. Nedávno jsem u jednoho skriptu v Pythonu řešil nutnost překladu takových adres, což jsem dělal zhruba takto:

1
2
3
4
...
ext_web = urllib2.urlopen(odkaz['href']) #načte web
url = ext_web.geturl() #uloží jeho adresu
...

Vypadá to jednoduše, v praxi je to však při větším počtu vstupních dat nepoužitelné, protože načtení stránky a získání adresy trvalo příliš dlouho. V průměru 15-20 sekund na jednu adresu. Což při 200 000 vstupních adresách chvilku trvá.

Naštěstí jsem narazil na webovou službu, která umožňuje velmi rychlý překlad zkrácený URL adres. Jedná se o web unshort.me. K našemu účelu by se dala využít i hlavní stránka s formulářem, pro strojové zpracování je však k dispozici také API. Její použití je jednoduché, stačí otevřít odkaz v tomto tvaru http://api.unshort.me/?r=urladresa&t=typvracenychdat. Takže v praxi například http://api.unshort.me/?r=http://bit.ly/defcon&t=xml (to je sranda, dívejte jakou adresu mi bit.ly vytvořil :-) Defcon). Výsledek překladu bude vrácen v XML formátu, přikládám dvě ukázky zpracování, jak v PHP, tak v Pythonu.

1
2
3
4
5
6
7
<?php
$adresa = "http://bit.ly/defcon";
$typ = "xml";
 
$xml = simplexml_load_file("http://api.unshort.me/?r=".$adresa."&t=".$typ);
echo $xml->requestedURL." ".$xml->resolvedURL;
?>
1
2
3
4
5
6
7
8
9
import urllib2
from BeautifulSoup import BeautifulStoneSoup #BSS se pouziva ke zpracovani XML
 
adresa = "http://bit.ly/defcon"
typ = "xml"
stranka = urllib2.urlopen("http://api.unshort.me/?r=" + adresa + "&t=" + typ)
 
xml = BeautifulStoneSoup(stranka)
print xml.requestedurl.text, xml.resolvedurl.text #muzeme snadno prochazet strukturu XML

Je dobré, že si API dokáže poradit i s nezkrácenými adresami, pokud tedy zkusíte přeložit adresu seitler.cz, nečeká na vás žádná chyba, ale jednoduše opět seitler.cz. A jak rychle vlastně překlad probíhá? Za sekundu se stihnou přeložit zhruba dvě adresy. A co se skrývá pod tajemným přeloženým odkazem???

EDIT: Svým článkem jsem vyprovokoval svého kamaráda Brana k tomu, aby napsal své vlastní řešení tohoto problému. Na výsledek jeho snahy se můžete podívat zde. Který přístup hodnotíte lépe a jaké jsou přednosti a zápory obou skriptů?

2 komentářů k “Jak na překlad zkrácených URL adres (bit.ly a další)”

Vyjádři svůj názor

O mně

Autor tohoto blogu v současné době studuje v druhém ročníku FIT VUT v Brně. Ve volném čase se věnuje sportu, IT, osobnímu rozvoji a oblasti soft skills.

Na tomto webu najdete info z FIT VUT, články z oblasti IT či osobního rozvoje, ale taky věci z běžného života, názory na hudbu, sport či cokoliv jiného.

Odkazy

Nebankovní půjčky online

PR blog. Vložte svůj článek se zaměřením na finance.

Partner links