urllib3

Screenshot Software:
urllib3
Mga detalye ng Software:
Bersyon: 1.5
I-upload ang petsa: 20 Feb 15
Nag-develop: Andrey Petrov
Lisensya: Libre
Katanyagan: 2

Rating: nan/5 (Total Votes: 0)

urllib3 ay isang Python HTTP library na may thread-safe na pooling koneksyon at suporta post na file.
Mga Highlight:
& Nbsp; * Muling gamitin ang parehong koneksyon sa socket para sa maramihang mga kahilingan (HTTPConnectionPool)
& Nbsp; * pag-post File (encode_multipart_formdata)
& Nbsp; * Built-in na pag-redirect at retries (opsyonal)
& Nbsp; * Thread-ligtas
Ano ang mali sa urllib at urllib2?
Mayroong dalawang mga kritikal na nawawala mula sa Python standard library tampok: Koneksyon sa muling paggamit / pooling at sa pag-post na file. Ito ay hindi masyado mahirap na ipatupad ang iyong sarili sa mga ito, ngunit ito ay lubhang mas madaling gamitin ang isang module na na ginawa ng mga trabaho para sa iyo.
Ang karaniwang mga library Python urllib at urllib2 may maliit na gawin sa isa't isa. Sila ay idinisenyo upang maging malaya at nakapag-iisa, sa bawat pag-solve ng ibang saklaw ng mga problema, at urllib3 sumusunod sa isang katulad na ugat.
Bakit gusto kong muling gamitin ang mga koneksyon?
Pagganap. Kapag na karaniwan mong gawin ang isang urllib tawag, isang hiwalay na koneksyon sa socket ay nalikha sa bawat kahilingan. Sa pamamagitan ng reusing umiiral na socket (suportado dahil HTTP 1.1), ang mga kahilingan ay tumagal ng hanggang mas mababa mapagkukunan sa dulo ng server, at nagbibigay din ng isang mas mabilis na oras ng pagtugon sa katapusan ng kliyente. Gamit ang ilang simple benchmarks (tingnan ang pagsubok na A / benchmark.py), pag-download ng 15 mga URL mula sa google.com ay tungkol sa dalawang beses nang mas mabilis kapag gumagamit ng HTTPConnectionPool (na gumagamit ng koneksyon 1) kaysa sa paggamit ng plain urllib (na ginagamit ng 15 na koneksyon).
Library na ito ay perpekto para sa:
& Nbsp; * pakikipag-usap sa isang API
& Nbsp; * Crawling isang website
& Nbsp; * Ang anumang sitwasyon kung saan ang pagkakaroon ng kakayahang mag-post ng mga file, pangasiwaan ang pag-redirect, at muling sinusubukan ay kapaki-pakinabang. Ito ay relatibong magaan ang timbang, kaya maaari itong gamitin para sa anumang bagay!
Mga halimbawa:
Pumunta sa Mga halimbawa wiki para sa higit pang magaling syntax-highlight ang mga halimbawa.
Ngunit, mahaba kuwento maikling:
mula sa pag-import urllib3 HTTPConnectionPool
API_URL = 'http://ajax.googleapis.com/ajax/services/search/web'
http_pool = HTTPConnectionPool.from_url (API_URL)
mga field = {'v': '1.0', 'q': 'urllib3'}
r = http_pool.get_url (API_URL, mga patlang)
-print r.status, r.data

Ano ang bagong sa paglabas:

  • Idinagdag urllib3.add_stderr_logger () para sa mabilis STDERR pagpapagana sa pag-debug sa pag-log in urllib3.
  • Katutubong buong URL sa pag-parse (kabilang ang auth, path, query, fragment) na magagamit sa urllib3.util.parse_url (url).
  • Built-in na pag-redirect ay lumipat na pamamaraan sa 'GET' kung status code ay 303. (Isyu # 11)
  • urllib3.PoolManager Strip ang scheme at host bago ipadala ang kahilingan URI. (Isyu # 8)
  • Bagong urllib3.exceptions.DecodeError pagbubukod para sa kapag ang awtomatikong pag-decode, batay sa mga header ng Nilalaman-Uri, nabigo.
  • Mga Fixed bug may pool pag-ubos at pagtulo koneksyon (Isyu # 76). Idinagdag tahasang koneksyon sa pagsasara ng pool pagpalayas. Idinagdag urllib3.PoolManager.clear ().
  • 99% - & gt; 100% unit test coverage.

Ano ang bagong sa bersyon 1.4:.

  • Maliliit na pag-aayos na may kaugnayan AppEngine-
  • Pinagpalit mula mimetools.choose_boundary sa uuid.uuid4 ().
  • Pinahusay na url sa pag-parse. (Isyu # 73)
  • IPv6 support url. (Isyu # 72)

Ano ang bagong sa bersyon 1.3:.

  • Inalis ang pre-1.0 na ginagamit ang API
  • Refactored helpers sa isang urllib3.util submodule.
  • Mga Fixed multipart pag-encode upang suportahan ang listahan-ng-tuples para sa key na may maramihang mga halaga. (Isyu # 48)
  • Mga Fixed maramihang Set-Cookie header bilang tugon hindi nagsisimula Pinagsama maayos sa Python 3. (Isyu # 53)
  • AppEngine suporta sa Py27. (Isyu # 61)
  • Maliliit na pag-aayos encode_multipart_formdata na may kaugnayan sa Python 3 mga string vs bytes.

Ano ang bagong sa bersyon 1.2.2:

  • Fixed bug packaging ng hindi pagpapadala ng pagsubok-kinakailangan. txt. (Isyu # 47)

Ano ang bagong sa bersyon 1.2.1:

  • Ang Nakatakdang isa pang bug na may kaugnayan sa kapag SSL module ay hindi magagamit. (Isyu # 41)
  • Mga error sa pag-parse ng Lokasyon ngayon taasan urllib3.exceptions.LocationParseError na inherits mula ValueError.

Ano ang bagong sa bersyon 1.2:

  • Added Python 3 suporta (nasubok sa 3.2.2)
  • -drop na Python 2.5 suporta (nasubok sa 2.6.7, 2.7.2)
  • Gamitin ang select.poll sa halip na select.select para sa mga platform na sumusuporta rito.
  • Gamitin ang Queue.LifoQueue sa halip na Queue.Queue para sa mas agresibo koneksyon reusing. -Configure sa pamamagitan ng pinakamahalaga ConnectionPool.QueueCls.
  • Mga Fixed ImportError sa panahon install kapag SSL module ay hindi available. (Isyu # 41)

  • Nagre-redirect
  • Ang Nakatakdang PoolManager sa pagitan ng mga scheme (tulad ng HTTP - & gt; HTTPS) hindi tinatapos nang maayos. (Isyu # 28, natuklasan sa pamamagitan ng Isyu # 10 sa v1.1)
  • -port dummyserver gamitin buhawi sa halip na webob + eventlet. Inalis labis na hindi suportadong backends pagsubok dummyserver. Mga pagsubok Idinagdag socket antas.
  • Marami pang mga pagsubok. Naka-unlock Achievement:. 99% Coverage

Ano ang bagong sa bersyon 1.1:

  • Refactored dummyserver sa sarili nitong ugat namespace module (ginagamit para sa pagsubok ).
  • Idinagdag hostname na pag-verify para sa VerifiedHTTPSConnection sa pamamagitan ng vendoring sa ssl_match_hostname Py32 iyon. (Isyu # 25)
  • pag-redirect Nakatakdang cross-host ng HTTP kapag gumagamit ng PoolManager. (Isyu # 10)
  • Mga Fixed decode_content hindi pinapansin kapag itinakda sa pamamagitan ng urlopen. (Isyu # 27)
  • Mga Fixed na may kaugnayan timeout-bug. (Isyu # 17, # 23)

Ano ang bagong sa bersyon 1.0.2:

  • Ang Nakatakdang typo sa VerifiedHTTPSConnection na gagawin naroroon lamang bilang isang bug kung gumagamit ka ng manu-mano ang bagay. (Salamat pyos)
  • Ginawa RecentlyUsedContainer (at dahil diyan PoolManager) higit pang mga thread-safe na sa pamamagitan ng wrapping ang log ng pag-access sa isang mutex. (Salamatchrister)
  • Ginawa RecentlyUsedContainer higit pa dict-like (itinama __delitem__ at __getitem__ pag-uugali), na may mga pagsubok. Dapat hindi nakakaapekto sa core urllib3 code.

Ano ang bagong sa bersyon 1.0.1:

  • Ang Nakatakdang ng isang bug kung saan ang parehong koneksyon ay makakuha ng ibinalik sa pool dalawang beses, na nagiging sanhi ng labis na & quot; HttpConnectionPool ay puno na & quot; -log babala.

Mga Kinakailangan :

  • Python

Iba pang mga software developer ng Andrey Petrov

urllib3
urllib3

12 May 15

Mga komento sa urllib3

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!