Requests: рдЕрд╕рдореНрдкреАрдбрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдлрд╝рд░ре░ 2012  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: psf/requests

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ: .text , .content рдФрд░ .raw ред рдкрд╣рд▓реЗ рджреЛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди-рдореЗрдореЛрд░реА рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдбреАрдХрдВрдкреНрд░реЗрд╕ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдмрдбрд╝рд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдШрдЯрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реАрдзреЗ рдПрдХреНрд╕рдПрдордПрд▓ рдпрд╛ рдЬреЗрд╕рди рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ред

рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдмрдирд╛рдирд╛ рд╣реИ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдореНрди-рд╕реНрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдХреНрдпреЛрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмреАрдЪ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдмрд╛рддрдЪреАрдд рдХреА рдЧрдИ рдереА? рдЖрдЦрд┐рд░рдХрд╛рд░, рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА "рдЧрд▓рддреА" рд╣реИ рдпрджрд┐ рдпрд╣ рдРрд╕реА рдзрд╛рд░рд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЪреВрдХ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ, рдореЗрд░реЗ рд╕реНрд╡рд╛рдж рдХреЗ рд▓рд┐рдП .raw рд╕реНрдЯреНрд░реАрдо рдереЛрдбрд╝реА рдХрдЪреНрдЪреА рд╣реИред

рд╢рд╛рдпрдж .stream рдЬреИрд╕реА рдЪреМрдереА рд╕рдВрдкрддреНрддрд┐ рдмреЗрд╣рддрд░ рдЕрдореВрд░реНрдд рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреА рд╣реИ?

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

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

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

Response.iter_content

рдПрд░реНрдо, рдирд╣реАрдВ, рдпрд╣ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╣реИред рдореИрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдкреВрдЫ рд░рд╣рд╛ рдерд╛, рдпрд╛рдиреА рдХреБрдЫ рдРрд╕рд╛ рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реАрдзреЗ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

iter_content рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдБред рдлрд┐рд░ рднреА, requests рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдореЗрд░рд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ .raw рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЧрд▓рдд рд╕реНрддрд░ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реНрддрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ HTTP рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЪрдВрдХ рджреНрд╡рд╛рд░рд╛ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдореБрдЦ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдк рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд╛рд░реНрд╕рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ HTML, XML, Json рдЖрджрд┐ред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓-рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдПрдХ рдлрд╝рд╛рдЗрд▓-рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЬреЛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдпрд╣ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЬрдЯрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдореБрдЭреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб 'models.py' рдпрд╣рд╛рдВ рдЧрд▓рдд рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдкрдиреА рдкреБрдирд░рд╛рд╡реГрддрд┐ рдорд╢реАрдирд░реА рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрдЪреНрдЪреА рдзрд╛рд░рд╛ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рджреМрд░рд╛рдиред рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рд╕реЗ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рд╕рд╛рджрд╛ рдмреЗрд╡рдХреВрдлреА рд╣реИред рдПрдХ рдПрдХрд▓ рдПрдкреАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░реНрдпрд╛рдкреНрдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реИрд╕реЗ рднреА рд╕рд╛рдордЧреНрд░реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

class FileLikeDecompressor(object):
    """
    File-like object that wraps and decompresses an HTTP stream transparently.
    """
    def __init__(self, stream, mode='gzip'):
        self.stream = stream
        zlib_mode = 16 + zlib.MAX_WBITS if mode == 'gzip' else -zlib.MAX_WBITS  # magic
        self.dec = zlib.decompressobj(zlib_mode)
        self.data = ''

    def read(self, n=None):
        if self.dec is None:
            return '' # all done
        if n is None:
            data = self.data + self.dec.decompress(self.stream.read())
            self.data = self.dec = None
            return data
        while len(self.data) < n:
            new_data = self.stream.read(n)
            self.data += self.dec.decompress(new_data)
            if not new_data:
                self.dec = None
                break
        if self.data:
            data, self.data = self.data[:n], self.data[n:]
            return data
        return ''

def decompressed(response):
    """
    Return a file-like object that represents the uncompressed HTTP response data.
    For compressed HTTP responses, wraps the stream in a FileLikeDecompressor.
    """
    stream = response.raw
    mode = response.headers.get('content-encoding')
    if mode in ('gzip', 'deflate'):
        return FileLikeDecompressor(stream, mode)
    return stream

рдЖрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ content_iter рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗред рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

class FileLikeFromIter(object):
    def __init__(self, content_iter):
        self.iter = content_iter
        self.data = ''

    def __iter__(self):
        return self.iter

    def read(self, n=None):
        if n is None:
            return self.data + '\n'.join(l for l in self.iter)
        else:
            while len(self.data) < n:
                try:
                    self.data = '\n'.join((self.data, self.iter.next()))
                except StopIteration:
                    break
            result, self.data = self.data[:n], self.data[n:]
            return result

рдЖрдк рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╣ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЬреЛ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рд╕реЗ рдкрд╣рд▓реЗ рд╣реИред

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрднреА рднреА рдХреНрд▓реАрдирд░ (рдФрд░ рдЖрдИрдПрдордУ рдЖрд╕рд╛рди) рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╣реИред

рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, r.file (рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ) рдореЗрдВ r.raw рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред @kennethreitz

"response.stream" рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд▓рдЧрддрд╛ рд╣реИред

рдпрд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред рд░реЙ рдХреЗ рд▓рд┐рдП рд╣реИ :)

рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЗрдЦрд╛ рддреЛ рдореИрдВрдиреЗ рднреА рд╕рд╣рдЬ рд░реВрдк рд╕реЗ рдпрд╣реА рд╕реЛрдЪрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ response.raw рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкрд░рд┐рд╡рд╣рди рдкрд░рдд рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред

рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ raw.read рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?

рдареАрдХ рд╣реИ, рд╣рд╛рдБ - рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ raw.read() рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдЖрдВрддрд░рд┐рдХ рд╡рд╛рд░реНрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрднреА-рдХрднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдирдВрдЧреЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдмрд╛рдЗрдЯреНрд╕ рджреЗрддрд╛ рд╣реИред

рдореВрд▓ рд░реВрдк рд╕реЗ, response.raw рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреБрд╢реА рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдВрдЧреЗ рдФрд░ рдХреБрдЫ рдкрд╛рд╡рд░-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорджрджрдЧрд╛рд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдПрдХ рд╕рдВрдкреАрдбрд╝рди-рд╕реНрд╡рддрдВрддреНрд░ response.stream рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд░реЗрдВрдЧреЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

+1

+1

рдХреНрдпрд╛ рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдЧ рдареАрдХ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ?

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рддрд░реАрдХрд╛ рдХрд┐рддрдирд╛ рд╕рд╣реА рдпрд╛ рдХреБрд╢рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ :

>>> import lxml  # a parser that scorns encoding
>>> unicode_response_string = response.text
>>> lxml.etree.XML(bytes(bytearray(unicode_response_string, encoding='utf-8')))  # provided unicode() means utf-8
<Element html at 0x105364870>

@kernc : рдРрд╕рд╛ рдХрд░рдирд╛ рдПрдХ рд╡рд┐рдЪрд┐рддреНрд░ рдмрд╛рдд рд╣реИред response.content рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд╛рдЗрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдбрд┐рдХреЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХрд┐ рдирд░рдХ рдХреЛрдбреЗрдХ рдкрд╛рдпрдерди рдЪреБрдирддрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕реЗ utf-8 рдХреЗ рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред

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

@ рд▓реБрдХрд╛рд╕рд╛ рд╕рд╣реА рд╣реИред content рд╣рдореЗрд╢рд╛ рдПрдХ рдмрд╛рдЗрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдкрд╛рдпрдерди 3 рдореЗрдВ рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмрд╛рдЗрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ; рдкрд╛рдпрдерди 2 str == рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ)ред рдПрдХрдорд╛рддреНрд░ рдЖрдЗрдЯрдо рдЬреЛ рдмрд╛рдЗрдЯрд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ text ред

@kennethreitz рдЗрд╕ рдкрд░ рдХреЛрдИ рдЦрдмрд░? рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЧрдВрднреАрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдЧ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЬрд▓реНрджреА рд╕реБрд▓рдЭрд╛рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рдХреЛрдб рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рдорд╣рдВрдЧрд╛ рд╣реЛрддрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЪрд▓реА рдЖ рд░рд╣реА рдбрд┐рдЬрд╝рд╛рдЗрди рдмрдЧ рдХреЛ "рд▓рд╛рдкрддрд╛ рд╕реБрд╡рд┐рдзрд╛"
рдпрд╣ рд╕рдм рдЖрд╕рд╛рдиреА рд╕реЗ рджреВрд░ рдХрд░ рджреЗрддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ
рдкрд╛рдпрдерди stdlib рдХрд╛ "рдЕрдиреБрд░реЛрдз" рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдирд╛ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ред

рдореИрдВрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ
рдкрд╛рдпрдерди stdlib рдХрд╛ "рдЕрдиреБрд░реЛрдз" рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдирд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ: http://docs.python-requests.org/en/latest/dev/philosophy/#standard -рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИред рдЕрдиреБрд░реЛрдз рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдмрд╣реБрдд рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред

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

рдорд╛рд░реНрдХ рд╢реНрд▓рд╛рдЗрдЪ, 19.03.2013 08:41:

рдореИрдВрдиреЗ рд╕реБрдирд╛ рд╣реИ рдХрд┐ рд▓реЗрдЦрдХ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реИ
рдкрд╛рдпрдерди stdlib рдХрд╛ "рдЕрдиреБрд░реЛрдз" рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдирд╛ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ: http://docs.python-requests.org/en/latest/dev/philosophy/#standard -рд▓рд╛рдЗрдмреНрд░реЗрд░реА

рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдкрдврд╝рд╛:

http://python-notes.boredomandlaziness.org/hi/latest/conferences/pyconus2013/20130313-language-summit.html

рд╕реНрдЯреАрдлрди

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

рдореБрдЭреЗ рдЗрд╕реЗ рд╕рдлрд╛рдИ рд╕реЗ рд╕рдореЗрдЯрдиреЗ рджреЛред рдмрдЧ рдпрд╣ рд╣реИ рдХрд┐ рд░реЙ рд╕реНрдЯреНрд░реАрдо рд░реАрдбрд┐рдВрдЧ рдлреАрдЪрд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдкреВрд░реНрдг рд╕рд╢рд░реНрдд рд╕реНрдЯреНрд░реАрдо рдбреАрдХрдВрдкреНрд░реЗрд╕рди рднрд╛рдЧ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдлреАрдЪрд░ рдмреЗрдХрд╛рд░ рд╣реИ, рдЬреИрд╕реЗ рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдВрдкреНрд░реЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдпрд╣рд╛рдВ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, "рдЕрдиреБрд░реЛрдз" рдореЗрдВ - рдпрд╣ рд╕рд┐рд░реНрдл рдЧрд▓рдд рдЬрдЧрд╣ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдЪреНрдЪреЗ рдкрдарди рд╕реНрддрд░ рдХреЗ рдиреАрдЪреЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдХреЗ рдКрдкрд░ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдПрдХреНрд╕реЗрдкреНрдЯ рд╣реЗрдбрд░ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╕рдВрдкреАрдбрд╝рди рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдмрд╛рддрдЪреАрдд рд╡рд┐рд╡рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдРрд╕рд╛ рдХреБрдЫ рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред

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

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

рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рддреБрдЪреНрдЫ рдФрд░ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдмрд┐рдВрджреБ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ рдпрд╣ рд╣реИ: рдЕрдиреБрд░реЛрдз рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдЙрдирдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рддрдЪреАрдд рддрдВрддреНрд░ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдХрд╛ рд╕реАрдзрд╛ рдореБрдХрд╛рдмрд▓рд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдХрд┐ рдПрдкреАрдЖрдИ рдХреА рд╕рд░рд▓рддрд╛ рд╣реИред рдЙрди рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдПрдХ рд▓рдВрдмреА, рд▓рдВрдмреА, _long_ рд╕реВрдЪреА рд╣реИ рдЬрд┐рди рдкрд░ рдЖрдкрддреНрддрд┐ рдХреА рдЧрдИ рдереА рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдПрдкреАрдЖрдИ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реЛред рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП urllib2 рдХреЛ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдиреБрд░реЛрдз рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ:

  • Response.text рдФрд░ Response.content : рдЖрдк рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • Response.iter_lines() рдФрд░ Response.iter_content() : рдЖрдк рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • Response.raw : рдЖрдк рдЕрдиреНрдп рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВред

рдЗрдиреНрд╣реЗрдВ рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧреЛрдВ рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдиреЗ рдХрд╣рд╛ рд╣реИ " рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реИрд╕реЗ рднреА рд╕рд╛рдордЧреНрд░реА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ " рдФрд░ " response.stream рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ "ред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЕрдиреБрднрд╡ рдореБрдЭреЗ рдЕрд╕рд╣рдордд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ: рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕рд╛рдордЧреНрд░реА рдЗрдЯрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрдд рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдЦреНрдд рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдПрдХ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ: рдпрджрд┐ рд╕рдВрдкреАрдбрд╝рди рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдПрдХ рдкрд╛рд░рджрд░реНрд╢реА рдмрд╛рддрдЪреАрдд рд╡рд┐рд╡рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЖрдкрдХреЛ urllib3 рдХреЗ рдЦрд┐рд▓рд╛рдл рдЙрдкрдпреБрдХреНрдд рдмрдЧ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд╣рдорд╛рд░реЗ рдХрдиреЗрдХреНрд╢рди рддрд░реНрдХ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реИрдВред

рдореБрдЭреЗ рдЖрдкрдХрд╛ рдмрд┐рдВрджреБ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ response.raw рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ (рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рд╣реЗрдбрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрдкреАрдбрд╝рди рд╡рд┐рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдкрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрднреА рднреА рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ...

@рд▓реБрдХрд╛рд╕рд╛
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдХреИрд╕реЗ urllib3 рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрдЧ рджрд╛рдЦрд┐рд▓ рдХрд░рдирд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рд╕рднреА рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдирд╣реАрдВред

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

@schlamar
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдореИрдВ рдареАрдХ рд╣реВрдВред рдпрджрд┐ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдРрд╕рд╛ рд╣реА рд╣реЛред

рдпрджрд┐ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рддреЛ рдРрд╕рд╛ рд╣реА рд╣реЛред

рдореБрдЭреЗ рдЕрдм рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреАрдЪрд░ рдлреНрд░реАрдЬ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдХреЗрдиреЗрде рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрдВрдЧреЗред

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдБ

  1. iter_content рдХреЛ рдлрд╝рд╛рдЗрд▓ рдЬреИрд╕реА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдпрд╛
  2. рд╣реЗрдбрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рдФрд░ рдЙрдЪрд┐рдд рд╣реЛрдиреЗ рдкрд░ response.raw рдбреАрдХрдВрдкреНрд░реЗрд╕ рдХрд░реЗрдВ

рджреЛрдиреЛрдВ рд╕рдорд╛рдзрд╛рди рдЙрдкрд░реЛрдХреНрдд рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╣реИрдВ, рдмрд╛рдж рд╡рд╛рд▓рд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдРрд╕реЗ рдореБрджреНрджреЗ рдХреНрдпреЛрдВ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕реАрдзреЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдЖрдЗрдП рдпрд╣рд╛рдВ 100% рд╕реНрдкрд╖реНрдЯ рд╣реЛрдВ: рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЛрдИ рдореМрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдпрд╣ рдлреАрдЪрд░ рдлреНрд░реАрдЬ рдореЗрдВ рд╣реИред рдХреБрдЫ рднреА рдирд╣реАрдВ рдЯреВрдЯрд╛ рд╣реИ, рдПрдкреАрдЖрдИ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рднреА рдЯреВрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЗрдиреЗрде рдЗрд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рд▓реЛрдХрддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рд╡реЛрдЯ рд╣реИред рдХреЗрдиреЗрде рдЖрджрдореА рд╣реИ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рд╡реЛрдЯ рд╣реИ ред рдХреЗрдиреЗрде рдиреЗ 8 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЗрд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдХреИрд╕реЗ urllib3 рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрдЧ рджрд╛рдЦрд┐рд▓ рдХрд░рдирд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рд╕рднреА рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдирд╣реАрдВред

рдЕрд╕рдВрдкреАрдбрд╝рд┐рдд рдлрд╝рд╛рдЗрд▓-рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП urllib3 рдХреЛ рдкреИрдЪ рдХрд░рдирд╛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд╣реА рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдирд╣реАрдВ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ)ред

рдУрд╣, рдпрд╣рд╛рдБ рд╕рдорд╛рдзрд╛рди рд╕рдВрдЦреНрдпрд╛ 3 (рдЕрдирдЪрд╛рд╣реЗ) рд╣реИ:

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

рджреЗрдЦреЗрдВ https://github.com/shazow/urllib3/blob/master/urllib3/response.py#L112

рджрд┐рд▓рдЪрд╕реНрдк - рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЕрдм рддрдХ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╛рдиреА рдбреАрдХрдВрдкреНрд░реЗрд╕рд░ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдФрд░ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд▓ рд╣реИрдВ? рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реА рдХреЙрд▓(123) рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдм gzip рдлрд╝рд╛рдЗрд▓ рдХреА рд╡реИрдз рд╢реБрд░реБрдЖрдд рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧреАред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╛рдиреА рдбреАрдХрдВрдкреНрд░реЗрд╕рд░ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдФрд░ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрд▓ рд╣реИрдВ?

рдУрд╣, рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдореИрдВрдиреЗ рдбреЙрдХрд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рдкрдврд╝рд╛ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ:

  1. urllib3 рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ рддрд╛рдХрд┐ HTTPResponse.read amt рдФрд░ decode_content рд╕рд╛рде рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗред
  2. HTTPResponse._decode_content рдХреЛ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рджрд╕реНрдп рдмрдирд╛рдПрдВ (рддрд╛рдХрд┐ рдЖрдк read рдкрджреНрдзрддрд┐ рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп response.raw.decode_content = True рдХрд░ рд╕рдХреЗрдВ)ред
  3. decode_content=True рдореЗрдВ iter_content decode_content=True рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдбреАрдХрдВрдкреНрд░реЗрд╕рди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдо рдХрд░реЗрдВ

@ рд▓реБрдХрд╛рд╕рд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлреАрдЪрд░ рдлреНрд░реАрдЬ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд╣реИ рдирд╛?

@schlamar : рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдЬрдм рддрдХ рдПрдкреАрдЖрдИ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИ, рдЖрдВрддрд░рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди _ рдЪрд╛рд╣рд┐рдП_ рдареАрдХ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕ рдкрд░ +1 рдХрд░реВрдВрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдореИрдВ BDFL рдирд╣реАрдВ рд╣реВрдВ, =)

рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ stream_decompress рд╡реИрд╕реЗ рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ: #1249

+1

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

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

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

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

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

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

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