Maison > Questions et réponses > le corps du texte
En python, comment obtenir l'URL finale correspondant à un lien court. Il existe maintenant de nombreux liens courts Taobao dont j'ai besoin pour obtenir l'URL finale vers laquelle le lien court renvoie. Certains sont au format 302 et certains sont redirigés directement sur la page Web en utilisant js. Comment les obtenir
.黄舟2017-05-19 10:09:33
Utilisez sélénium+phantonjs...
http://stackoverflow.com/ques...
#!/usr/bin/python2.7
from twisted.internet import reactor
from twisted.internet.defer import Deferred, DeferredList, DeferredLock
from twisted.internet.defer import inlineCallbacks
from twisted.web.client import Agent, HTTPConnectionPool
from twisted.web.http_headers import Headers
from pprint import pprint
from collections import defaultdict
from urlparse import urlparse
from random import randrange
import fileinput
pool = HTTPConnectionPool(reactor)
pool.maxPersistentPerHost = 16
agent = Agent(reactor, pool)
locks = defaultdict(DeferredLock)
locations = {}
def getLock(url, simultaneous = 1):
return locks[urlparse(url).netloc, randrange(simultaneous)]
@inlineCallbacks
def getMapping(url):
# Limit ourselves to 4 simultaneous connections per host
# Tweak this as desired, but make sure that it no larger than
# pool.maxPersistentPerHost
lock = getLock(url,4)
yield lock.acquire()
try:
resp = yield agent.request('HEAD', url)
locations[url] = resp.headers.getRawHeaders('location',[None])[0]
except Exception as e:
locations[url] = str(e)
finally:
lock.release()
Et vous pouvez essayer le package pip
https://pypi.python.org/pypi/...
from urlunshort import resolve
resolve("http://bit.ly/qlKaI") 结果 'http://bitbucket.org/runeh/urlunshort/'