Ho visto questa discussione già - How can I unshorten a URL?Come posso non abbreviare un URL usando python?
Il mio problema con la risposta risolto (che utilizza l'API unshort.me) è che mi sto concentrando sulla unshortening link di YouTube. Poiché unshort.me viene utilizzato prontamente, questo restituisce quasi il 90% dei risultati con captcha che non riesco a risolvere.
Finora mi sono bloccato con l'utilizzo di:
def unshorten_url(url):
resolvedURL = urllib2.urlopen(url)
print resolvedURL.url
#t = Test()
#c = pycurl.Curl()
#c.setopt(c.URL, 'http://api.unshort.me/?r=%s&t=xml' % (url))
#c.setopt(c.WRITEFUNCTION, t.body_callback)
#c.perform()
#c.close()
#dom = xml.dom.minidom.parseString(t.contents)
#resolvedURL = dom.getElementsByTagName("resolvedURL")[0].firstChild.nodeValue
return resolvedURL.url
Nota: tutto nei commenti è quello che ho cercato di fare quando si utilizza il servizio di unshort.me, che stava tornando link captcha.
Qualcuno sa di un modo più efficiente per completare questa operazione senza utilizzare open (dal momento che è uno spreco di larghezza di banda)?
Cosa URL shortener stai avendo problemi con? Perché stai usando unshort.me comunque? Il tuo codice dovrebbe già funzionare, dovrebbe rimuovere gli URL seguendo il reindirizzamento all'URL reale. – zeekay
Non capisco cosa intendi con "senza usare aperto". Un link breve è una chiave nel database di qualcun altro; non è possibile espandere il collegamento senza interrogare il database. –
Mentre stavo leggendo il post a cui facevo riferimento (http://stackoverflow.com/questions/4201062/how-can-i-unshorten-a-url-using-python) sembrava che il comando urlopen GET richiedesse l'intera pagina quindi è uno spreco di larghezza di banda quando tutto quello che sto cercando è il collegamento. Il metodo suggerito non funzionava per me (unshort.me) quindi ho deciso di vedere se c'erano altre alternative. – brandonmat