urllib3

Software screenshot:
urllib3
Dettagli del software:
Versione: 1.5
Data di caricamento: 20 Feb 15
Sviluppatore: Andrey Petrov
Licenza: Libero
Popolarità: 44

Rating: 3.0/5 (Total Votes: 1)

urllib3 è una libreria Python HTTP con thread-safe pool di connessioni e di sostegno dopo il file.
Highlights:
& Nbsp; * Riutilizzare la stessa connessione socket per richieste multiple (HTTPConnectionPool)
& Nbsp; * distacco File (encode_multipart_formdata)
& Nbsp; * Built-in reindirizzamento e tentativi (optional)
& Nbsp; * thread-safe
Cosa c'è di sbagliato con urllib e urllib2?
Ci sono due caratteristiche fondamentali mancanti dalla libreria standard di Python: Collegamento riutilizzo / pooling e file di distacco. Non è terribilmente difficile da attuare questi stessi, ma è molto più facile da usare un modulo che ha già fatto il lavoro per voi.
Le librerie standard di Python urllib e urllib2 hanno poco a che fare con l'altro. Sono stati progettati per essere indipendente e autonomo, ogni soluzione di un diverso campo di problemi, e urllib3 segue in modo simile.
Perché voglio riutilizzare le connessioni?
Prestazioni. Quando si fa normalmente una chiamata urllib, una connessione socket separato viene creato con ogni richiesta. Riutilizzando prese esistenti (supportate dal HTTP 1.1), le richieste avranno meno risorse sulla fine del server, e anche fornire un tempo di risposta più veloce alla fine del cliente. Con alcuni semplici parametri di riferimento (vedi test / benchmark.py), il download di 15 URL da google.com è circa due volte più veloce quando si usa HTTPConnectionPool (che utilizza 1 collegamento) che usare urllib pianura (che utilizza 15 connessioni).
Questa libreria è perfetto per:
& Nbsp; * Parlando a un API
& Nbsp; * Crawling un sito web
& Nbsp; * Qualsiasi situazione in cui poter inviare i file, gestire il reindirizzamento, e riprovare è utile. È relativamente leggero, in modo che possa essere utilizzato per nulla!
Esempi:
Vai alla wiki esempi per gli esempi più belle di sintassi-evidenziata.
Ma, per farla breve:
dall'importazione urllib3 HTTPConnectionPool
API_URL = 'http://ajax.googleapis.com/ajax/services/search/web'
http_pool = HTTPConnectionPool.from_url (API_URL)
campi = {'v': '1.0', 'q': 'urllib3'}
r = http_pool.get_url (API_URL, campi)
stampa r.status, r.data

Cosa c'è di nuovo in questa versione:

  • urllib3.add_stderr_logger Aggiunto () in modo rapido consentendo STDERR registrazione debug in urllib3.
  • URL completo Native analisi (tra cui autenticazione, percorso, interrogare, frammento) disponibile in urllib3.util.parse_url (url).
  • Built-in redirect passerà metodo per 'Get' se il codice di stato è 303. (Issue # 11)
  • urllib3.PoolManager strisce del regime e di accoglienza prima di inviare la richiesta di uri. (Issue # 8)
  • eccezione Nuovo urllib3.exceptions.DecodeError per quando la decodifica automatica, in base all'intestazione Content-Type, fallisce.
  • Corretto il bug con piscina esaurimento e le connessioni che perdono (Issue # 76). Aggiunto esplicito collegamento chiusura sul pool sfratto. Aggiunto urllib3.PoolManager.clear ().
  • 99% - & gt; 100% di copertura unit test.

Cosa c'è di nuovo in versione 1.4:.

  • Piccole correzioni AppEngine correlati
  • Switched dal mimetools.choose_boundary a uuid.uuid4 ().
  • Migliorata analisi degli URL. (Issue # 73)
  • Supporto url IPv6. (Issue # 72)

Cosa c'è di nuovo in versione 1.3:.

  • Rimosso pre-1.0 API deprecato
  • aiutanti riscritta in un modulo urllib3.util.
  • encoding multipart fisso a sostegno degli elenchi di tuple per le chiavi con più valori. (Issue # 48)
  • fissi più intestazioni Set-Cookie nella risposta non sempre fusi correttamente in Python 3. (Issue # 53)
  • Supporto AppEngine con Py27. (Issue # 61)
  • Correzioni encode_multipart_formdata minori relativi a Python 3 stringhe vs byte.

Cosa c'è di nuovo nella versione 1.2.2:

  • Risolto bug imballaggi di non immettere test-requisiti. txt. (Issue # 47)

Cosa c'è di nuovo nella versione 1.2.1:

  • Risolto un bug relativo a quando il modulo SSL non è a disposizione. (Issue # 41)
  • Posizione errori di analisi ora sollevano urllib3.exceptions.LocationParseError che eredita da ValueError.

Cosa c'è di nuovo in versione 1.2:

  • Python 3 Aggiunto il supporto (testato su 3.2.2)
  • Dropped Python 2.5 sostegno (testato su 2.6.7, 2.7.2)
  • Usa select.poll invece di select.select per le piattaforme che lo supportano.
  • Usa Queue.LifoQueue invece di Queue.Queue collegamento più aggressivo riutilizzo. Configurabile sovrascrivendo ConnectionPool.QueueCls.
  • fissi ImportError durante l'installazione quando il modulo SSL non è disponibile. (Issue # 41)
  • fissi poolmanager reindirizza tra sistemi (come ad esempio HTTP - & gt; HTTPS) non hanno completato correttamente. (Issue # 28, scoperto da Issue # 10 in v1.1)
  • dummyserver Tradotto per usare tornado invece di webob + eventlet. Rimossi estranei backend di prova dummyserver non supportati. Test aggiunta a livello di socket.
  • Altri test. Achievement sbloccato:. 99% di copertura

Cosa c'è di nuovo nella versione 1.1:

  • refactoring dummyserver al proprio modulo namespace root (utilizzato per il test ).
  • verifica hostname aggiunto per VerifiedHTTPSConnection da vendoring in ssl_match_hostname di Py32. (Issue # 25)
  • fissi HTTP cross-ospite reindirizza utilizzando poolmanager. (Issue # 10)
  • decode_content fisso viene ignorato quando è impostato attraverso urlopen. (Issue # 27)
  • Fixed bug timeout relativi. (Issues # 17, # 23)

Cosa c'è di nuovo nella versione 1.0.2:

  • typo fissa in VerifiedHTTPSConnection che sarebbe presente solo come bug se si sta utilizzando manualmente l'oggetto. (Pyos Grazie)
  • Fatto RecentlyUsedContainer (e di conseguenza poolmanager) più thread-safe avvolgendo il log di accesso in un mutex. (Graziechrister)
  • Fatto RecentlyUsedContainer più dict-like (__delitem__ corretti e comportamenti __getitem__), con i test. Non dovrebbe pregiudicare il codice di base urllib3.

Cosa c'è di nuovo nella versione 1.0.1:

  • Risolto un bug per cui la stessa connessione otterrebbe tornato in piscina due volte, causando estranea & quot; HttpConnectionPool è pieno & quot; log avvertimenti.

Requisiti :

  • Python

Altri software di sviluppo Andrey Petrov

urllib3
urllib3

12 May 15

Commenti a urllib3

I commenti non trovato
Aggiungi commento
Accendere le immagini!