Requests: рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ gzipped рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЬреБрд▓ре░ 2014  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рдореБрдЭреЗ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд░реВрдк рдореЗрдВ рдмрдбрд╝реА рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрд╕рдореНрдкреАрдбрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдЖрдХрд╛рд░ рдореЗрдВ рдХрдИ рд╕реМ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕рдПрдордПрд▓ рдкрд╛рд░реНрд╕рд░ рдХреЛ рд╕реМрдВрдкрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдореГрддрд┐ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓рдПрдХреНрд╕рдПрдордПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рд╕рд┐рд░реНрдл response.raw рдХреЛ рдЗрд╕рдХреЗ iterparse() рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реМрдВрдкрддрд╛ рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдиреБрд░реЛрдз рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдХрд╣реАрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдпрд╣ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореИрдВ рдЬрд┐рд╕ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рддреЛ рдпрд╣ рдХрднреА-рдХрднреА Content-Encoding: gzip рд▓реМрдЯрд╛рдПрдЧрд╛, рднрд▓реЗ рд╣реА рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕рдореНрдкреАрдбрд┐рдд рдбреЗрдЯрд╛ рдорд╛рдВрдЧреВрдВред рд╕рд╛рде рд╣реА, рдЗрди рдЕрддреНрдпрдВрдд рджреЛрд╣рд░рд╛рд╡ рд╡рд╛рд▓реА рдФрд░ рд╡рд░реНрдмреЛрдЬрд╝ рдПрдХреНрд╕рдПрдордПрд▓ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ (10x+) рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдкреАрдбрд╝рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрд╛ред urllib3 рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рд╢реЛрдз рдХрд░рдирд╛, рдЗрд╕рдХреА HTTPResponse.read() рд╡рд┐рдзрд┐ decode_content рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИред рдпрджрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ urllib3 рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╕реЗрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЕрдиреБрд░реЛрдз рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ request.adapters.HTTPAdapter.send() рдореЗрдВ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ decode_content рдХреЛ False рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░рддрд╛ рд╣реИ?

рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ, iter_content() рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрдврд╝рддреЗ рд╕рдордп decode_content=True рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреНрдпреЛрдВ? рдпрд╣ рд╕рдм рдереЛрдбрд╝рд╛ рдордирдорд╛рдирд╛ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдБ рдФрд░ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреА рдкреНрд░реЗрд░рдгрд╛ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ iter_content() рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ lxml рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рд▓рд┐рдЦреА рдереА рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдПрд▓рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рдмреАрдЪ рд╣реБрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрдлрд░рд┐рдВрдЧ рдХрдард┐рди рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕рдордЭрджрд╛рд░ рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд░реЛрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ .

рдЖрдкрдХреА рдХреНрдпрд╛ рд╕рд▓рд╛рд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВ? рдХреНрдпрд╛ urllib3 рдореЗрдВ decode_content=True рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

Contributor Friendly Documentation Planned

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрддреАрдд рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ

r = requests.get('url', stream=True)
r.raw.decode_content = True
...

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирд╣реАрдВ, рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрддрд╛ рд╣реИ functools.partial рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП read рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдзрд┐ (рдпрд╛ рдмрд╕ рдЗрд╕реЗ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд▓рдкреЗрдЯ) рддрд╛рдХрд┐ рдЖрдк рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд╛рд░реНрдп рдХрд░реЗрдВ:

response.raw.read = functools.partial(response.raw.read, decode_content=True)

рдФрд░ рдлрд┐рд░ рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд░ рдХреЛ response.raw рдкрд╛рд╕ рдХрд░реЗрдВред

@ sigmavirus24 рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ!

рдореИрдВ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ: http://docs.python-requests.org/en/latest/community/faq/#encoded -data
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХрдерди "рдЕрдиреБрд░реЛрдз рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ gzip-рдПрдиреНрдХреЛрдбреЗрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ" stream=True рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ urllib3 рдореБрджреНрджреЗ рдкрд░ рдкрдврд╝рд╛ рд╣реИ, gzip рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХреЗ urllib3 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЕрдкрдиреА рдЫреЛрдЯреА-рдЫреЛрдЯреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореБрдЭреЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

@ sigmavirus24 рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд╡рд░реНрддрдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬ рдЧрд▓рдд рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕рд╕реЗ рдЕрд╕рд╣рдордд рд╣реИрдВ, рддреЛ рд╣рд╛рдБ, рдмрдВрдж рдХрд░реЗрдВ!

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП (рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рдХреЛрд░ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ) рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЙрди 90% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрднреА рднреА рдХрдЪреНрдЪреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд╣реАрдВ рдЫреВрдПрдВрдЧреЗ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдкрд╣рд▓реЗ рдХрд╣рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ "рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрдЪреНрдЪрд╛ рдбреЗрдЯрд╛, рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИ"ред рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд╣рд╛, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЖрдЬ рд░рд╛рдд рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░реВрдВрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдЕрдзрд┐рдХ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ "рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛" рдХреЛ "рдХрдЪреНрдЪреЗ рдкреЗрд▓реЛрдб" рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛, рдпрд╛рдиреА рдПрдХ рдбреАрдХрдВрдкреНрд░реЗрд╕реНрдб рд╕реНрдЯреНрд░реАрдоред рдореБрдЭреЗ рдмрд╕ рдЗрд╕реЗ рдЬрд┐рддрдиреЗ рднреА рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рдЪрд╛рд╣рд┐рдП, рдЙрд╕реЗ рдкрдврд╝рдирд╛ рд╣реИред .content рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдПрдХ рд╡рд┐рдШрдЯрд┐рдд рдмреВрдБрдж рд╣реИ (рдкреЗрд▓реЛрдб рднреА, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд░реВрдк рдореЗрдВ)ред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдореЗрд░реЗ рд▓рд┐рдП HTTP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЪрд┐рдВрддрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ HTTP рдХрд╛ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг, рдПрдХ рдЬрд┐рд╕реЗ рдореИрдВ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЪрд╛рд╣реЗ рдореИрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдкреЗрд▓реЛрдб рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░реАрдлрд╝реЗрдЪ рдХрд┐рдП рдЧрдП рдмреНрд▓реЙрдм рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реВрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛ред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдЕрдиреБрд░реЛрдз рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг 'рд╕рдВрдкреАрдбрд╝рди' рдХреЛ рд╕рд╛рд░рдгрд┐рдд рдХрд░реЗрдВрдЧреЗред

(рдпрд╣ рдзрд╛рд░рдгрд╛ decode_content рд╕реЗ True рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░рдиреЗ рдХреЗ рдореЗрд░реЗ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рдореВрд▓ рдореЗрдВ рднреА рдереАред рдмреЗрд╢рдХ рдЕрдм рдЬрдм рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рд▓реАрдХреА рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рд╣реИ, рддреЛ рдореИрдВ рдЕрдм рдЗрд╕рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реВрдВред)

рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдБ рдХрд┐ рдЖрдкрдХреЗ 99% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рд╡рд┐рд╡рд░рдг рд╕реЗ рдХрднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред

рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдШреВрдо рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рддрдереНрдп рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ r.raw рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ urllib3 рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд╕реНрддреБ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рд╣рдордиреЗ рдЕрддреАрдд рдореЗрдВ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рд╣реИ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдзрд┐рдХ)ред рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ Response рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЯрдХрд░рд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ urllib3 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рд╣реИ ( read рдХреЗрд╡рд▓ raw.read рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рд╣реЛрдЧрд╛ urllib3 рдЖрд╕рдкрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдУрд░ рд╕реЗ) urllib3 рдореЗрдВ рдПрдХ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдЬреЛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд▓рдЧрднрдЧ рдХрднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИ рдЙрд╕рдореЗрдВ рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛)ред

рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рдПрдкреАрдЖрдИ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдПрдкреАрдЖрдИ рд╡рд╣ рдПрдкреАрдЖрдИ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рд▓реЗрдХрд░ рд▓рдЧрд╛рддрд╛рд░ рдмрд╛рдбрд╝ рдкрд░ рд╣реВрдВред


рдпрд╣ рдзрд╛рд░рдгрд╛ рдореЗрд░реЗ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рдореВрд▓ рдореЗрдВ рдбрд┐рдХреЛрдб_рдХрдВрдЯреЗрдВрдЯ рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдереАред рдмреЗрд╢рдХ рдЕрдм рдЬрдм рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд▓реАрдХреА рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рд╣реИ, рддреЛ рдореИрдВ рдЕрдм рдЗрд╕рдХрд╛ рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реВрдВред

рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕реЗ рдкрд╛рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдЪ рдХреНрдпреЛрдВ рд╣реИ, рдореБрдЭреЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред

рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдкреВрд░реНрд╡ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЙрдкрднреЛрдХреНрддрд╛ рдУрдкрдирд╕реНрдЯреИрдХ рд╣реИред рдХрдИ рдУрдкрдирд╕реНрдЯреИрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬреЗ рдЧрдП Content-Length рд╣реЗрдбрд░ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдмреЙрдбреА рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдВрдмрд╛рдИ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рд▓рд┐рдП, рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдПрдХ рдЙрдЪрд┐рдд рд╡реНрдпрд╛рдкрд╛рд░-рдмрдВрдж рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдПрдХ рд╡реИрдз рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣реЗ рд╣реИрдВред

рдПрдХ рдЕрдиреНрдп рдЙрдкрднреЛрдХреНрддрд╛ рдмреАрдЯрд╛рдореИрдХреНрд╕ рд╣реИ (рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рднреА рдЙрдкрдХрд░рдг рдЬреЛ (рдкреБрдирдГ) рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ) рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡реИрдз рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреБрдЫ рдФрд░ рднреА рд╣реИрдВ рдЬреЛ рди рддреЛ @Lukasa рдпрд╛ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ, рдпрд╣ рднреА рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЖрдЬ рдЙрд╕реА рдореБрджреНрджреЗ рдХреЛ рдорд╛рд░реЛ, рдФрд░ рдЙрд╕реА рдзрд╛рд░рдгрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕рдордп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рд░рд┐рд╕реНрдкрд╛рдВрд╕ рдкрд░ рдХрдИ рдирдП рддрд░реАрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рднреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬреИрд╕реЗ response.stream рдЬреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреА рд╕рдорд╛рди рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рдПрдЧреА .raw ? рдпрд╣ stream=True рд╕реЗрдЯрд┐рдВрдЧ/рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рднреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗрдЧрд╛, рдФрд░ рдореМрдЬреВрджрд╛ .raw рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрддреАрдд рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ

r = requests.get('url', stream=True)
r.raw.decode_content = True
...

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ @sigmavirus24 рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб tell рдкрджреНрдзрддрд┐ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдЧрд▓рдд рдСрдлрд╝рд╕реЗрдЯ рд▓реМрдЯрд╛рдПрдЧрд╛ред

Google рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдЕрдкрд▓реЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдЬреЛ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП tell() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрднреА рдкрдврд╝реЗ рдЧрдП рдереЗ ( рдпрд╣рд╛рдВ )ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

xsren picture xsren  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mitar picture mitar  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

8key picture 8key  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

avinassh picture avinassh  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

thadeusb picture thadeusb  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ