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



Zajímá vás cokoliv o mobilních aplikacích? Uvažujete o spolupráci? Kontaktujte mne na seitler@reinto.cz

O mně

Jmenuji se Milan Seitler a jsem spoluzakladatelem společnosti Reinto s.r.o., ve které se věnujeme mobilním i webovým aplikacím a marketingu.

Zabývám se celým procesem tvorby mobilních a webových aplikací. Nejvíce se věnuji návrhu aplikace a UX/UI designu. Kladu velký důraz na jednoduchost a srozumitelnost uživatelského rozhraní.

Zajímám se o online i offline podnikání, fascinují mě úspěšní lidé, kteří se nebojí tvrdé práce. Mou hlavní motivací je konkurence, která mě vždy nutí jít do všeho naplno, protože nerad prohrávám.

Mám rád hudbu, knížky, sport a cestování.

milan@seitler.cz

Odkazy

Inzerujte zde!

Kupte si odkaz! PR 3, SR 2

Inzerujte zde!

Kupte si odkaz! PR 3, SR 2

Inzerujte zde!

Kupte si odkaz! PR 3, SR 2

Partner links