Rumah > Soal Jawab > teks badan
Dalam python, bagaimana untuk mendapatkan URL akhir yang sepadan dengan pautan pendek Terdapat banyak pautan pendek Taobao sekarang saya perlu mendapatkan URL akhir yang dituju oleh pautan pendek. Ada yang 302 dan ada yang diubah hala terus pada halaman web menggunakan js
黄舟2017-05-19 10:09:33
Gunakan selenium+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()
Dan anda boleh mencuba pakej pip
https://pypi.python.org/pypi/...
from urlunshort import resolve
resolve("http://bit.ly/qlKaI") 结果 'http://bitbucket.org/runeh/urlunshort/'