So erhalten Sie die endgültige URL nach dem Sprung, die einer URL-Adresse in Python entspricht
高洛峰
高洛峰 2017-05-19 10:07:33
0
1
1796

Wie erhalte ich in Python die endgültige URL, die einem Kurzlink entspricht? Es gibt jetzt viele Taobao-Kurzlinks. Gibt es eine gute Möglichkeit, dies zu tun? Einige sind 302 und andere werden mithilfe von js direkt auf die Webseite umgeleitet

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(1)
黄舟

用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()
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       

而且可以试试pip包

https://pypi.python.org/pypi/...

from urlunshort import resolve
resolve("http://bit.ly/qlKaI")   结果  'http://bitbucket.org/runeh/urlunshort/'   

    
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage