cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk mendapatkan URL akhir selepas lompatan yang sepadan dengan alamat url dalam Python

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

高洛峰高洛峰2788 hari yang lalu1801

membalas semua(1)saya akan balas

  • 黄舟

    黄舟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/'   
    
        

    balas
    0
  • Batalbalas