urllib3는 스레드 안전 연결 풀링 및 파일 포스트를 지원하는 파이썬 HTTP 라이브러리입니다.
하이라이트 :
& NBSP; * 여러 요청에 대해 동일한 소켓 연결을 다시 사용 (HTTPConnectionPool)
& NBSP; * 파일 게시 (encode_multipart_formdata)
& NBSP; * 내장 리디렉션 및 재시도 (선택 사항)
& NBSP; * 스레드 안전
무엇 URLLIB 및 urllib2를 잘못?
다시 사용 / 풀링 및 파일 게시 연결 : 파이썬 표준 라이브러리에없는 두 가지 중요한 기능이 있습니다. 이들에게 자신을 구현하기 위해 정말 열심히 아니지만, 이미 당신을 위해 일했다 모듈을 사용하는 것이 훨씬 더 쉽다.
파이썬 표준 라이브러리 URLLIB 및 urllib2가 서로 거의 상관이있다. 이들은 각각 다른 종류의 문제를 해결 범위 독립적이고 독립적으로 설계하고 urllib3은 같은 맥락에서 다음 하였다.
왜 연결을 다시하고 싶어?
성능. 일반적 URLLIB 호출을 수행 할 때, 별도의 소켓 연결은 각각의 요청으로 작성됩니다. (HTTP 1.1 보낸 지원) 기존의 소켓을 재사용함으로써, 요청이 서버의 단부에 적은 리소스를 차지하며 또한 클라이언트의 단부에서 더 빠른 응답 시간을 제공 할 것이다. (15 연결을 사용) 일반 URLLIB를 사용하는 것보다 (1 연결을 사용하는) HTTPConnectionPool 사용할 때 몇 가지 간단한 벤치 마크 (시험 / benchmark.py 참조), google.com에서 15 URL을 다운로드하는 두 배 정도 빠릅니다.
이 라이브러리는 최적입니다 :
& NBSP; * API와 대화
& NBSP; * 웹 사이트 크롤링
& NBSP; * 파일을 게시 리디렉션을 처리 할 수있는, 재 시도 어떤 상황에 유용합니다. 비교적 경량, 그래서 그것은 아무것도 사용할 수있다!
예 :
더 좋은 구문 강조 예는 예 위키로 이동합니다.
그러나, 긴 이야기를 짧게 :
urllib3 수입에서 HTTPConnectionPool
API_URL = 'http://ajax.googleapis.com/ajax/services/search/web'
http_pool = HTTPConnectionPool.from_url (API_URL)
필드 = { 'V': '1.0', 'Q': 'urllib3'}
R = http_pool.get_url (API_URL, 필드)
인쇄 r.status, r.data P>
이 릴리스의 새로운 기능입니다 :
이 빨리 urllib3에 STDERR 디버그 로깅을 가능하게하기위한 추가 urllib3.add_stderr_logger ().
urllib3.util.parse_url (URL)에서 사용할 수있는 (AUTH, 경로, 쿼리, 단편 포함) 기본 전체 URL 파싱.
상태 코드가 303 인 경우 내장에 방법을 전환됩니다 리디렉션 'GET'(문제 # 11)
urllib3.PoolManager는 요청 URI를 보내기 전에 방식과 호스트를 제거합니다. (문제 # 8)
Content-Type 헤더에 따라 자동 디코딩, 실패 할 경우를위한 새로운 urllib3.exceptions.DecodeError 예외.
풀 고갈과 누출 연결 (문제 # 76)와 버그 수정. 풀 퇴거에 폐쇄 명시 적 연결을 추가했습니다. 추가 urllib3.PoolManager.clear ().
99 % -있다 100 % 단위 테스트 범위.
이 마이너 애플리케이션 엔진과 관련이없는 수정 :
이 1.4 버전의 새로운 기능입니다.
uuid.uuid4하는 mimetools.choose_boundary에서 전환 ().
개선 된 URL 파싱. (문제 73 번)
IPv6의 URL을 지원. (문제 # 72)
이 1.3 버전의 새로운 기능 :
이 사전 1.0 사용되지 않는 API를 제거.
urllib3.util 서브 모듈로 리팩토링 도우미.
고정 멀티 인코딩리스트의 튜플 여러 값을 가진 키를 지원합니다. (문제 # 48)
응답에서 고정 여러 설정 - 쿠키 헤더 파이썬 3에서 제대로 합병 안한다 (문제 # 53)
Py27와 애플리케이션 엔진을 지원합니다. (문제 # 61)
파이썬 3 문자열 대 바이트에 관한 사소한 encode_multipart_formdata 수정.
1.2.2 버전의 새로운 기능 : 시험 requirements.txt 출하하지 않는
이 고정 포장 버그. (문제 # 47)
이 버전 1.2.1의 새로운 기능 :
가 SSL 모듈을 사용할 수없는 경우 관련된 또 다른 버그가 수정되었습니다. (문제 # 41)
위치 구문 분석 오류가 지금은 ValueError에서 상속 urllib3.exceptions.LocationParseError을 올립니다.
이 1.2 버전의 새로운 기능 :
이 추가 된 파이썬 (3.2.2에서 테스트) 3 지원
삭제 된 파이썬 2.5 지원 (2.6.7 테스트, 2.7.2)
를 지원하는 플랫폼 select.poll 대신 select.select를 사용합니다.
더 공격적으로 연결 재사용 대신 Queue.Queue의 Queue.LifoQueue을 사용합니다. ConnectionPool.QueueCls를 오버라이드 (override)으로 구성.
SSL 모듈을 사용할 수없는 경우 고정 ImportError를이 기간 동안 설치합니다. (문제 # 41)
제대로 완료하지 - 고정 PoolManager은 (HTTPS있다 HTTP와 같은) 방식 사이에 리디렉션합니다. (버전 1.1에서 문제 # 10에 의해 발견 문제점 # 28)
배관 dummyserver는 webob + eventlet 대신 토네이도 사용할 수 있습니다. 제거 된 외부 지원되지 않는 dummyserver 테스트 백엔드. 추가 된 소켓 레벨 테스트.
더 많은 테스트합니다. 성취의 잠금을 해제 : 99 % 범위를.
이 버전 1.1의 새로운 기능 :
(테스트에 사용) 자신의 루트 네임 스페이스 모듈에 dummyserver 리팩토링.
Py32의 ssl_match_hostname에 vendoring로 VerifiedHTTPSConnection에 대한 추가 호스트 이름 확인. (문제 25 번)
PoolManager를 사용하는 경우 고정 크로스 호스트 HTTP 리디렉션. (문제 # 10)
urlopen을 통해 설정할 때 고정 decode_content는 무시된다. (문제 27 번)
고정 시간 제한 관련 버그. (문제 # 17, # 23)
이 버전 1.0.2의 새로운 기능 :
이 수동으로 개체를 버그로 만 현재 사용하고하면 VerifiedHTTPSConnection에 고정 오타. (감사합니다 pyos)
스레드 안전 뮤텍스에 액세스 로그를 포장에 의해 RecentlyUsedContainer (결과적으로 PoolManager) 더. (감사합니다 @christer)
제 RecentlyUsedContainer 더 DICT 같은과 (수정 __delitem__ 및 __getitem__ 행동) 테스트. 핵심 urllib3 코드에 영향을 미치지 않습니다.
이 버전 1.0.1의 새로운 기능 :
이 같은 연결이 필요없는 & quot 원인이 두 번 풀로 돌려받을 것 버그 수정, HttpConnectionPool 전체 & quot이다; 경고를 기록합니다.
이 요구 사항 :
이 파이썬
댓글을 찾을 수 없습니다