18
Jak na překlad zkrácených URL adres (bit.ly a další)
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ů?
Čti dál:
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ě
kategorie
FIT VUT
Odkazy
PR blog. Vložte svůj článek se zaměřením na finance.
TAGS
Nejčtenější články
- Operační systémy (IOS) – Projekt č. 1 a 2 - 4 070 views
- První semestr na FIT VUT - 2 520 views
- Základy programování (IZP) – Projekt č. 3 a 4 - 2 480 views
- Druhý semestr na FIT VUT - 2 253 views
- Základy programování (IZP) – Projekt č. 1 a 2 - 1 983 views
- 7 tipů Jak spát méně a efektivněji - 1 803 views
- Python #3 – zpracování HTML - 1 400 views
- Jak vytvořit validní facebook like tlačítko ve WordPress - 1 169 views
- Začínám s Pythonem - 1 112 views
- Začínám s Pythonem #2 - 884 views







Ahoj.
Něco podobného jsem potkal při toulkách po netu tady
http://net.tutsplus.com/tutorials/ruby/how-to-build-a-shortlink-app-with-ruby-and-redis/
díky za tip, ruby musím taky někdy vyzkoušet