рдпрд╣ рдкреЛрд╕реНрдЯ рд╕рднреА рдЕрдЬрдЧрд░ - рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдХреА рд╢рд╛рд╢реНрд╡рдд рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдкрддреНрд░ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдореЗрдВ рдореЗрд░реЗ рджреЛрд╕реНрдд рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рдХрд┐ рдЙрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдлрд╛рд░реНрдо рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдорд┐рд▓реАрдВ:
u'\xd0\x9a\xd1\x83\xd1\x80\xd1\x83\xd0\xbc\xd0\xbe\xd1\x87'
рдХреНрдпрд╛ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реИ? рдФрд░ рдпрд╣рд╛рдВ рдореИрдВ рд╣реВрдВред рд▓рд╛рдЗрдиреЗрдВ рдпреВрдирд┐рдХреЛрдб рдХреА рддрд░рд╣ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдЕрдВрджрд░ рдпреВрдПрдл -8 рдПрдирдХреЛрдбреЗрдб рдмрд╛рдЗрдЯреНрд╕ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИред рдЖрдЧреЗ рдХреА рд╕рдордЭ рдФрд░ рдРрд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдорд╛рдВрдЧ рдХрд░рдирд╛ рдЬреЛ рдЗрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рд╡реЗрдм рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
lxml.html
рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдлреА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдФрд░ рдлрд┐рд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП
lxml.html
рдореЗрдВ
lxml.html
рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЪреВрдВрдХрд┐
urllib
рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣ рдЙрдиреНрд╣реЗрдВ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐
lxml
рдХреЛ рджреЛрд╖ рджреЗрдирд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░,
lxml
рдмрд╣реБрдд рд╣реА рд╢рд╛рдВрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ - рджреЛрдиреЛрдВ рддреЗрдЬ рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ, рдФрд░
ElementTree
рддрд╣рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░
ElementTree
рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ pythonists рдХреЗ рд╕рд╛рде рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдЖрд╕рд╛рдиреА рд╕реЗ
xml
рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрд▓рдЧ рдорд╛рдорд▓рд╛ рд╣реИред рдпрд╣ html parser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЙрд╕ рдореЗрдВ рд╣реИ рдХрд┐ рдпреЗ рдЕрдкреНрд░рд┐рдп рдореЗрдЯрд╛рдореЙрд░реНрдлреЛрд╕реЙрд░реНрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХреИрд╕реЗ рджреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ
yandex.ru рдкрд░ рдЧрдпрд╛ рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рд╡рд╣рд╛рдВ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ html рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Utf8 рд╕рд╛рдордЧреНрд░реА рдПрдиреНрдХреЛрдбрд┐рдВрдЧред рдХреНрдпрд╛ рддреБрд░рдВрдд рдореЗрд░реА рдЖрдВрдЦ рдкрдХрдбрд╝рд╛ рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдШреЛрд╖рдгрд╛ рдХреА рдХрдореА рдереАред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХрд╛рдлреА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рдорд╛рди HTML рдмрдирд╛рдХрд░:
data = """<html>
<head>
</head>
<body> </body>
</html>"""
html = lxml.html.document_fromstring(data)
рдФрд░ рдЗрд╕реЗ
lxml.html
рдореЗрдВ
lxml.html
, рдореБрдЭреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реБрдП:
>>> s
u'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82 \xd0\xbc\xd0\xb8\xd1\x80'
>>> print s
├Р┼╕├СтВм├Р┬╕├Р┬▓├Р┬╡├СтАЪ ├Р┬╝
s - рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ "рд╣реЗрд▓реНрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреА рд▓рд╛рдЗрди рд╣реИ, рдЬрд┐рд╕реЗ xpath рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╛рдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдбрд┐рдХреЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдореМрдХреЗ рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреЛрдбреЗрдХ рдХрдЪреНрдЪреЗ-рдпреВрдирд┐рдХреЛрдб-рдПрд╕реНрдХреЗрдк рд╣реИрдВ, рдЬреЛ рдЗрд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрди рд╕реЗ рдПрдХ рдмрд╛рдЗрдЯ рдмрдирд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд┐рдирд╛ рднреА:
>>> print s.encode('raw-unicode-escape')
рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд┐рд░реНрдгрдп рдмреБрд░рд╛ рд╣реИред рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ
lxml.html
рдЧреИрд░-ASCII рд╡рд░реНрдгреЛрдВ рдХрд╛ рдордЬрд╛рдХ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдореИрдВ рдЕрдкрдиреЗ рдШреГрдгрд┐рдд рдореЗрдЯрд╛-рд╣реЗрдбрд░ html рдореЗрдВ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body> </body>
</html>
рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд рдЬрдЧрд╣ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИ:
>>> print s
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, http рд╣реЗрдбрд░ рд╕реЗ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрдирд╛ рдЕрдзрд┐рдХ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди lxml.html рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдбрд▓ рдЖрдпрд╛ рдерд╛ рдФрд░ рдЙрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ lxml.html рдЗрдирдкреБрдЯ рдХреЛ рдмрд╛рдЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рджреЗрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдпреВрдирд┐рдХреЛрдб (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЦреБрдж рдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ):
>>> html = lxml.html.document_fromstring(data.decode('utf-8'))
...
>>> print s
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЕрдЧрд░
lxml.html
"рд╣рд░ рдХреАрдордд рдкрд░ рдЬреАрд╡рд┐рдд рд░рд╣рдиреЗ" рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЦрд░рд╛рдм рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ - рдЬрд┐рд╕ рддрд░рд╣ рдпрд╣ рдкрд╛рд░реНрд╕рд▓ xml рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИрдВред
рд╕рддрд░реНрдХ рд░рд╣реЗрдВред