рд▓реЗрдЦ
рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ
HTML-рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреА рд╣реИ, рд╕рд╛рдЗрдЯ рд╕рд╛рдордЧреНрд░реА рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдЦ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреА рд╣реИ рдФрд░ "рдмрд╛рд╣рд░реА" рддрддреНрд╡реЛрдВ рд╕реЗ рд▓реЗрдЦ рдкрд╛рда рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдлрд╛рдИ рдХрд░рддреА рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп
urllib (HTML рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛),
lxml (HTML рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛, рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ "рд╕рд╛рдл рдХрд┐рдпрд╛ рд╣реБрдЖ рд▓реЗрдЦ") рдХреЛ рд╕рд╣реЗрдЬрдирд╛,
рдкреБрдирдГ (рдирд┐рдпрдорд┐рдд рднрд╛рд╡ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛),
configobj (рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдкрдврд╝рдирд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдХрд╛ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рдФрд░ рдХреЛрдб рдбреАрдмрдЧрд┐рдВрдЧ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
рдЖрд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдПрд╕.рдПрдо. рдЧреЛрд▓реВрдмрд┐рдЯреНрд╕реНрдХреА, рдПрдХ рд╡рд░реНрдХрд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд▓рд┐рдВрдХред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдпрд╛ рдХреБрдЫ рдЧреАрдд
рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдпрд╣ рдХрд╣рдиреЗ рдореЗрдВ рдЧрд▓рдд рд╣реВрдВ рдХрд┐
рд╕рд░реНрдЧреЗрдИ рдЧреЛрд▓реВрдмрд┐рдЯреНрд╕реНрдХреА рдХреЗ
рдЕрдирд┐рд╢реНрдЪрд┐рддрдХрд╛рд▓реАрди рдХрд╛рдо рд╕реЗ рдХрдИ рдлреЗрд░реАрд╡рд╛рд▓реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рд▓рдЧрднрдЧ 15 рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдкрддреНрд░рдХрд╛рд░рд┐рддрд╛ рдореЗрдВ, рдирд╛рдореЗрд░реЗрдХ рдиреЗ рдкреЗрдкрд░ рдмреЙрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдЕрд╕рд╛рдордпрд┐рдХ рдореГрддрдХ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░-рдСрдирд▓рд╛рдЗрди рдкреЛрд░реНрдЯрд▓ рдкрд░ 300 рд╕реЗ рдЕрдзрд┐рдХ Dovecats рдореЗрдВ рдкрд╣рд╛рдбрд╝ рдкрд░ 433 рд▓реЗрдЦ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдПред рдФрд░ рдпрд╣ рдмрд┐рдЬрдиреЗрд╕ рдЬрд░реНрдирд▓ рдореЗрдВ рд╡рд┐рджреЗрд╢реА gesheft рдХреЗ рдирд╛рдпрдХреЛрдВ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, "рд╣реЛрдо рдХрдВрдкреНрдпреВрдЯрд░", "рд░реВрд╕реА рдЬрд░реНрдирд▓", "D`" рдФрд░ рдЗрддрдиреЗ рдкрд░ рд▓реЗрдЦ рдореЗрдВ рд░рдЪрдирд╛рддреНрдордХрддрд╛ рдХреЗ рд░рд╣рд╕реНрдпреЛрдВ рдкрд░ рд╕реЗ рдкрд░реНрджрд╛ред рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЬреАрд╡рди-рдирд┐рд░реНрдорд╛рдг рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рдореАрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдкрд░ рдорд┐рд▓реЗрдВрдЧреЗред
рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓, рд▓реЗрдЦрдХ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ "рдж
рдУрд▓реНрдб рдкреАрдЬреЙрди рд╣рд╛рдЙрд╕ рдПрдВрдб рд╣рд┐рдЬ рдлреНрд░реЗрдВрдбреНрд╕ " рдиреЗ рдХрд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╛рдирд╛ рдЧрдпрд╛ (рдФрд░ рдмрди рдЧрдпрд╛), рд▓рдЧрд╛рддрд╛рд░ рд▓реЗрдЦрдХ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╕рд╛рдВрд╕реНрдХреГрддрд┐рдХ-рдкреЛрд╡реЗрджрд▓рд┐рдпрди рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд░ рд╕реЗ рднрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдПрдХ рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдЬреАрд╡рди, рд╕рд╛рдорд╛рдЬрд┐рдХ рдкреМрд░рд╛рдгрд┐рдХ рдХрдерд╛рдУрдВ рдФрд░ рдЖрддреНрдо-рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╕реАрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрдЯ рд░реВрдк рд╕реЗ, рдФрд░ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЕрд╡рдХрд╛рд╢ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИ, рдореИрдВ рдПрдХ рдмрд╛рд░ рдбрд╛рд╡рдХреЛрдЯ рдкрд░ рд╕рднрд╛рдУрдВ рдореЗрдВ рдирд┐рдпрдорд┐рдд рд╣реЛ рдЧрдпрд╛ред рдЕрдкрдиреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдВ рди рдХреЗрд╡рд▓ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рджреГрд╖реНрдЯрд┐ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднреА рднрд╛рдЧ рд▓реЗрддрд╛ рд╣реВрдВред
рдХрдВрдкреНрдпреВрдЯрд░-рдСрдирд▓рд╛рдЗрди рдкреЛрд░реНрдЯрд▓ рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рд▓реЗрдЦреЛрдВ рдХреЗ рдкреНрд░реВрдлрд░реАрдбрд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдХрдмреВрддрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдп, рдЬрд┐рд╕рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:
- Computerre-online рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╕рднреА Dovecats рдХреА рд╕реВрдЪреА рдмрдирд╛рдПрдВред рд╕реВрдЪреА рдореЗрдВ рд▓реЗрдЦ рдХрд╛ рд╢реАрд░реНрд╖рдХ, рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд┐рдерд┐, рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА (рдХреЗрд╡рд▓ рдкрд╛рда, рдЪрд┐рддреНрд░, рд╡реАрдбрд┐рдпреЛ), рд╕рд╛рд░рд╛рдВрд╢, рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
- рдкреЗрдкрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реВрдЪреА рдХреЛ рдкреВрд░рдХ рдХрд░реЗрдВ, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдвреВрдВрдвреЗрдВред
- рд╡реЗрдмрд╕рд╛рдЗрдЯ Internettrading.net рдХреЗ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реВрдЪреА рдХреЛ рдкреВрд░рдХ рдХрд░реЗрдВ
- "рдкреБрд░рд╛рдиреЗ рдХрдмреВрддрд░" рдкреЛрд░реНрдЯрд▓ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
- рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╕реНрдХ рдкрд░ рд▓реЗрдЦ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрддреНрд╡реЛрдВ рдХреЗ рдкрд╛рда рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░реЗрдВред
рдЯреВрд▓рдХрд┐рдЯ рдЪрдпрди
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реА рдкрд╕рдВрдж рддреБрд░рдВрдд рдФрд░ рдЕрд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рдкрд░ рдЧрд┐рд░ рдЧрдИред рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рдЕрд╡рдХрд╛рд╢ рдкрд░ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ (рдФрд░ рдлрд┐рд░ рдПрдХ рдЙрдиреНрдирдд рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рдкрд╛рдпрдерди рд╢реЗрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛), рд▓реЗрдХрд┐рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдкреНрд░рдЪреБрд░рддрд╛, рд╕реНрд░реЛрдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рд▓реЗрдЦрди рдФрд░ рдбреАрдмрдЧрд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рднреАред рдХрдо рд╕реЗ рдХрдо, рд╡реЗ рддрддреНрдХрд╛рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдЧреНрд░рд╣реАрдд рдХреМрд╢рд▓ рдХреЗ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдореЗрдВ рднреА рд░реБрдЪрд┐ рд░рдЦрддреЗ рдереЗ: Google рдбреЙрдХреНрд╕ рдПрдкреАрдЖрдИ, рд╡рд░реНрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдСрдЯреЛрдореЗрд╢рди, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдгред
рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реБрдП, рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд╛рдХрд┐ рдиреНрдпреВрдирддрдо рд╕рдордп рдкрдврд╝рдиреЗ рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЕрдВрддрддрдГ, рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХреЗред рджреВрд╕рд░реА рдУрд░, рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдЕрдиреНрдп рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдмрд╣реБрдореБрдЦреА рдкреНрд░рддрд┐рднрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдХреБрдЫ рдЙрдкрдХрд░рдг рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдкреВрд░реНрдг рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдВрддрддрдГ рдпреЛрдЬрдирд╛ рдХреЛ рдЕрдВрдд рддрдХ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
рддреЛ, рдкрд╛рдпрдерди рдХреЗ рдЙрдкрдпреБрдХреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЪреБрдирд╛рд╡ рд╢реБрд░реВ рд╣реБрдЖред рд╢реБрд░реВ рдореЗрдВ рдореИрдВрдиреЗ рдкрд╛рдпрдерди 3.2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдкреНрд░рдпреЛрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореИрдВ
рдкрд╛рдпрдерди 2.7 рдкрд░ рд░реБрдХ рдЧрдпрд╛, рдХреНрдпреЛрдВрдХрд┐ "рдЯреНрд░реЛрдЗрдХрд╛" рдкрд░ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдЧрдПред
рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реЗрдЯрдкреНрдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдФрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдгред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ:
- urllib - рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ HTML-рдкреГрд╖реНрда рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
- lxml - XML тАЛтАЛрдФрд░ HTML рдХреЛрдб рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп;
- configobj рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред
рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рдиреЛрдЯрдкреИрдб ++ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╡рд╛рд▓рд╛ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рд╣реИ:
- FireBug - FireFox рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд▓рдЧрдЗрди рдЬреЛ рдЖрдкрдХреЛ HTML рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
- FirePath - XPath рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд▓рдЧрдЗрди:
- рдХреЛрдбрд┐рдВрдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкрд╛рдпрдерди рдЬреАрдпреВрдЖрдИред
Habr├й рдкрд░ рд▓реЗрдЦ рдФрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдиреЗ рдЕрдореВрд▓реНрдп рдорджрдж рдкреНрд░рджрд╛рди рдХреА:
рд╕рд╛рде рд╣реА рдореИрдиреБрдЕрд▓, рдЙрджрд╛рд╣рд░рдг рдФрд░ рдкреНрд░рд▓реЗрдЦрди:
рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ,
рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдХрд┐рддрд╛рдм
рд╕рдорд╛рдзрд╛рди рдЕрд╡рд▓реЛрдХрди
рдХрд╛рд░реНрдп рдореЗрдВ рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдЗрдЯреЛрдВ рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рд╕ рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдпрд╛ рдХрдИ рдкреГрд╖реНрда рд╣реИрдВред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рджреЗрдиреЗ рдФрд░ рдПрдХрд░реВрдк рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд╡реНрдпрддреАрдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдореВрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЧрдИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЧрдИ, рдЬрд┐рд╕рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реВрдЪреА рдФрд░ HTML рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ред рдЗрд╕рд▓рд┐рдП, Internettrading.net рдкрд░ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рд╛рдордЧреНрд░реА, рдЬрд╣рд╛рдБ HTML рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдФрд░ рдкреЗрдЬ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЬрдмрдХрд┐ CMS рдбреНрд░реБрдкрд▓ ("рдУрд▓реНрдб рдкрд┐рдЬрди рд╣рд╛рдЙрд╕ рдПрдВрдб рд╣рд┐рдЬ рдлреНрд░реЗрдВрдбреНрд╕") рдФрд░ рдмрд┐рдЯреНрд░рд┐рдХреНрд╕ ("рдХрдВрдкреНрдпреВрдЯрд░-рдСрдирд▓рд╛рдЗрди"), рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдЧрдард┐рдд рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдХрд╛рдЧрдЬ) рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореИрдВ рдкреБрд░рд╛рдиреЗ рдмреНрд▓реВрдмреЗрд░реА рдХреЗ рдкреЛрд░реНрдЯрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ред
рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА "
рдлрд╝реЛрдЯреЛрдЧреНрд░рд╛рдлрд╝рд░ " рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЧрдИ рд╣реИред рдпрд╣рд╛рдВ рдирд╛рдо, рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рдФрд░ рд╕рд┐рдиреЛрдкреНрд╕рд┐рд╕ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕реВрдЪреА рдХреЛ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдкрддрд╛ рдмрд╛рд░ ((? рдкреЗрдЬ = n) рдореЗрдВ рдПрдХ рд▓реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдХрд░ рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди HTML рдкрд╛рда рд╕реЗ рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдореБрдЭреЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд▓рдЧ рд░рд╣рд╛ рдерд╛ред
рд▓реЗрдЦ рдХреЗ рдкреГрд╖реНрда рдкрд░ рдбреАрдбреА YYYY рдорд╣реАрдиреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд╛рд░реАрдЦ, рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдкрд╛рда рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ рд╕реНрд░реЛрдд рдХрд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдЧрдП:
MaterialList (рдСрдмреНрдЬреЗрдХреНрдЯ) - рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (
_ParseList рд╕реВрдЪреА рдХреЗ рдПрдХ рдЕрд▓рдЧ рдкреГрд╖реНрда рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдФрд░ рдЕрдЧрд▓реЗ рдкреГрд╖реНрда рдХреЗ URL рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐
_etetNextPage , рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЙрдирдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ) рдФрд░
рд╕рд╛рдордЧреНрд░реА (рдСрдмреНрдЬреЗрдХреНрдЯ) - рд▓реЗрдЦ рд╣реАред
_InitID рддрд┐рдерд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ,
_ParsePage рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐, рдкреНрд░рдХрд╛рд╢рди рд╕реНрд░реЛрдд
_GetSection рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐
, рдФрд░ рдкреНрд░рдХрд╛рд╢рди рддрд┐рдерд┐, рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░, рдЖрджрд┐ рдЬреИрд╕реЗ рд▓реЗрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБред)
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЯреНрд░реА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
- get_text (рдордж, рдкрде) - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрде рдореЗрдВ рдкрде рдкрде рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдХрд╛ рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
- get_value (рдЖрдЗрдЯрдо) - рдЖрдЗрдЯрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдиреЛрдб рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- get_value_path (рдордж, рдкрде) - рдкрде рдХреЗ рд╕рд╛рде рдЖрдЗрдЯрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдиреЛрдб рдХрд╛ рдкрд╛рда рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- get_attr_path (рдордж, рдкрде, рдЕрдЯреНрд░реИрдЯ) - рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрде рдкрде рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдФрд░
get_month_by_name (рдорд╛рд╣) рдлрд╝рдВрдХреНрд╢рди, рдЬреЛ рджрд┐рдирд╛рдВрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдорд╣реАрдиреЗ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИред
рдореБрдЦреНрдп рдХреЛрдб (
рдореБрдЦреНрдп () рдкреНрд░рдХреНрд░рд┐рдпрд╛) рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рдХрд░рдирд╛, рд╕рд╛рдордЧреНрд░реА рдХреА рд╕реВрдЪреА рдХреЗ рдкрдиреНрдиреЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рд╕реВрдЪреА рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣реЗрдЬрдирд╛ (CSV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) рдФрд░ рд▓реЗрдЦ рдЧреНрд░рдВрдереЛрдВ (HTML рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо) рдкрд░ рдмрдирддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░)ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рд╕реВрдЪреА рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда рдХрд╛ URL, рд╕рд╛рдордЧреНрд░реА рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА XPath рдкрде рдФрд░ рд▓реЗрдЦ рд╕реВрдЪреА, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдФрд░ рд▓реЗрдЦреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд┐рд╡рд░рдг
рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдХреЛрдб рдХреЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реВрдБрдЧрд╛ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдпрд╛ рдзреВрдореНрд░рдкрд╛рди рдореИрдиреБрдЕрд▓ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗред
рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдЕрдВрджрд░ рд░рд╛рд╕реНрддреЛрдВ рдХреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдФрд░ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рд╕рднреА XPath рдХреЛ рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдиреНрдпрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рдерд╛ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рд╣реИ:
# Comment
[ Section_1 ]
# Comment
variable_1 = value_1
# Comment
variable_2 = value_2
[[Subsection_1]]
variable_3 = value_3
[[Subsection_2]]
[ Section_2 ]
рдЙрдк-рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдШреЛрдВрд╕рд▓рд╛ рдордирдорд╛рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЕрдиреБрднрд╛рдЧреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
from configobj import ConfigObj
#
cfg = ConfigObj('sgolub-list.ini')
# url sgolub
url = cfg['sgolub']['url']
Html рдкреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛
urlib рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Lxml рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдПрдХ рдкреЗрдбрд╝ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рд▓рд┐рдВрдХ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ:
import urllib
from lxml.html import fromstring
# html-
html = urllib.urlopen(url).read();
# lxml.html.HtmlElement
page = fromstring(html)
#
page.make_links_absolute(url)
рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рд╕реВрдЪреА рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП
lxml.html.HtmlElement.findall (рдкрд╛рде) рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
for item in page.findall(path):
url = get_attr_path(item,cfg['sgolub']['list']['xpath_link'],'href')
рдЕрдм рдлрд╛рдпрд░рдкрде рдкреНрд▓рдЧрдЗрди рдФрд░ XPath рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИрдмрд░ рдкрд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд╛рдпрд░рдкрд╛рде рдРрд╕реЗ рдкрде рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрд▓рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдкрдереЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдереЛрдбрд╝рд╛ рд╕рд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдВрддрд░ рд╣реИред рдмрд╣реБрдд рдЬрд▓реНрдж, рдЗрди рдорддрднреЗрджреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЧрдИ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╛рдпрд░рдкреИрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреАрдУрдмреА рдЯреИрдЧ рдХреЛ * (рд╕рдмрд╕реЗ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛) рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред рдЗрд╕реА рд╕рдордп, рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдП рдЧрдП рд░рд╛рд╕реНрддреЛрдВ рдХреЛ рдлрд╛рдпрд░рдкрд╛рде рдореЗрдВ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рддреЗрдЬ рдХрд░рддрд╛ рд╣реИред
рдЬрдмрдХрд┐
page.findall(path)
рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ, рдПрдХ рдПрдХрд▓ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ (рдкрде) рд╡рд┐рдзрд┐ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
content = page.find(cfg['sgolub']['doc']['xpath_content'])
рдЦреЛрдЬрдиреЗ рдФрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗрд╡рд▓ рд╕рд░рд▓ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
xpath_blocks = './/*[@id='main-region']/div/div/div/table/*/tr/td'
xpath_nextpage = './/*[@id='main-region']/div/div/div/ul/li[@class="pager-next"]/a[@href]'
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
xpath_purifytext = './/*[@id="fin" or @class="info"]'
рдЖрдкрдХреЛ xpath (рдкрде) рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреЛ рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рд╣реИ рдЬреЛ рдЪрдпрдирд┐рдд рддрддреНрд╡реЛрдВ рдХреЛ рдПрдХ рдкреЗрдбрд╝ рд╕реЗ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ (рдореИрдВ рдЕрднреА рднреА рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдХрд┐ рдпрд╣ рдЬрд╛рджреВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрддреНрд╡ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреЗрдбрд╝ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ):
from lxml.html import tostring
for item in page.xpath(cfg['computerra']['doc']['xpath_purifytext']):
item.drop_tree()
text=tostring(page,encoding='cp1251')
рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рднреА lxml.html.tostring рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкреЗрдбрд╝ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рддрддреНрд╡реЛрдВ рдХреЗ рдмрд┐рдирд╛!)ред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ
рдкреБрдирдГ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рдкрд╣рд▓рд╛ рдЙрджрд╛рд╣рд░рдг "DD Month YYYY" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреА рддрд╛рд░реАрдЦ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:
import re
import datetime
# content lxml.html.HtmlElement
# ,
datestr=get_text(content,cfg['sgolub']['doc']['xpath_date'])
if len(datestr)>0:
datesplit=re.split('\s+',datestr,0,re.U)
self.id = self._InitID(list,datesplit[2].zfill(4)+str(get_month_by_name(datesplit[1])).zfill(2)+datesplit[0].zfill(2))
self.date = datetime.date(int(datesplit[2]),get_month_by_name(datesplit[1]),int(datesplit[0]))
else:
self.id = self._InitID(list,list.lastid[0:8])
self.date = datetime.date(1970,1,1)
Re.split рдлрд╝рдВрдХреНрд╢рди
(regexp, string, start, options) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд╕реНрдХ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рд▓рд╛рдЗрди рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрддрд░рд┐рдХреНрд╖ рджреНрд╡рд╛рд░рд╛)ред
рдкреБрдирдГ рд╡рд┐рдХрд▓реНрдк
рдЖрдкрдХреЛ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рд░реВрд╕реА рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
Zfill (n) рдлрд╝рдВрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд░реНрдгреЛрдВ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдмрд╛рдИрдВ рдУрд░ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред
def _GetSection(item, path):
#
reinfo = re.compile(r'.*┬л(?P<gsource>.*)┬╗.*',re.LOCALE)
for info in item.xpath(path):
src=get_value_path(info,'.').strip('\n').strip().encode('cp1251')
if src.startswith(' '):
parser = self.reinfo.search(src)
if parser is not None:
if parser.group('gsource')=='-':
return '-'
else:
return parser.group('gsource')
break
return ''
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ
_GetSection (рдЖрдЗрдЯрдо, рдкрде) , рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмрдЯреНрд░реА рдкрд╛рд╕ рдХреА рдЧрдИ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рд╕реНрд░реЛрдд рдХрд╛ рдПрдХ рд╕рдВрдХреЗрдд рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдмрд┐рдЬрдиреЗрд╕ рдЬрд░реНрдирд▓ рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд"ред рд░реЗрдЧреЗрдХреНрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
? рдкреА <gsource> ред рдХреЛрд╖реНрдардХ рдореЗрдВ рд░рдЦреЛ, рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдирд╛рдорд┐рдд рд╕рдореВрд╣реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░
parser.group ('gsource') рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
Re.LOCALE рд╡рд┐рдХрд▓реНрдк
re.U рдХреЗ рд╕рдорд╛рди рд╣реИ
редрдкрд╛рд░реНрд╕рд░ рд╕реНрд░реЛрдд рдХреЛрдб
Google рдбреЙрдХреНрд╕ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреБрд░рд╛рдиреЗ рдХрдмреВрддрд░ рдХреА рд╕рд╛рдЗрдЯ рдХреЛ рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреА рдзрд╛рд░рд╛ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреЗрд╡рд▓ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рд▓рд┐рдВрдХ рдФрд░ рдкрде рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдЪрд╛рд░ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓реЗрдЦреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдерд╛ рдФрд░ рдбреЙрд╡реЗрдЯреНрд╕ рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рд╕реВрдЪреАред рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ Google рдбреЙрдХреНрд╕ рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд▓реЗрдЦ рднреА рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ Google рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЧрдП рдереЗред
рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛:
- рдПрдХ рдРрд╕реА рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдирд╛ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдП рдкрджреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ
- Google рдбреЙрдХреНрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирдИ рдкреЛрд╕реНрдЯ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕реНрд╡рдд: рд╕реБрдзрд╛рд░ рдФрд░ Google рдбреЙрдХреНрд╕ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде HTML рд╕реЗ XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд▓реЗрдЦреЛрдВ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛
рдкреАрдПрд╕ рдЯрд┐рдкреНрдкрдгреА, рд╕рдорд░реНрдерди рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕рд╛рд╡рдзрд╛рди рдЕрдзреНрдпрдпрди рдХреЗ рдмрд╛рдж рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдВрдЧреАред