рд╕реЗрд▓реЗрдирд┐рдпрдо рдХреЗ рд╕рд╛рде рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд░реЗрд▓рд╡реЗ рдЯрд┐рдХрдЯреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд░реВрд╕реА рд░реЗрд▓рд╡реЗ рдЯрд┐рдХрдЯ рдЦрд░реАрджрддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рдХреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдкрд░рд┐рдЪрдп



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

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

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

рд╕реНрд╡рдЪрд╛рд▓рди



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

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

pip install selenium

рдХреЛрдб рд▓реЗрдЖрдЙрдЯ рдЬрд▓реНрджреА рд╕реЗрд▓реЗрдирд┐рдпрдо рдЖрдИрдбреАрдИ (рдпрд╣ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреВрд░реНрд╡-рд╕рдХреНрд╖рдо рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдкрд░ рдорд╛рдирдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рдХреЗред рдкреНрд▓рдЧрдЗрди рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

рддрдм рд╣рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдХрдВрдШреА рдХрд░рдирд╛ рдерд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЪреЗрдХ, рдФрд░ рдЕрд▓рд╛рд░реНрдо рдХреА рдЯреНрд░рд┐рдЧрд░рд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдерд╛ред
рдкрд░рд┐рдгрд╛рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреА рддрд░рд╣ рд╣реИ:
 # coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import time, re import winsound class Rzdtemp(): def __init__(self, logger): self.logger = logger def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://ticket.rzd.ru/" self.verificationErrors = [] def test_rzdtemp(self): self.logger.info('...') driver = self.driver driver.get(self.base_url + "/static/public/ticket?STRUCTURE_ID=2") driver.find_element_by_link_text("").click() self.logger.info('   ...') driver.find_element_by_id("j_username").clear() driver.find_element_by_id("j_username").send_keys("username") driver.find_element_by_id("j_password").clear() driver.find_element_by_id("j_password").send_keys("password") driver.find_element_by_id("other").click() self.logger.info('  ...') driver.find_element_by_link_text(" ").click() self.logger.info(' ...') driver.find_element_by_id("fromInput").clear() driver.find_element_by_id("fromInput").send_keys(u' ') driver.find_element_by_id("whereInput").clear() driver.find_element_by_id("whereInput").send_keys(u' ') driver.find_element_by_id("forwardDate").clear() driver.find_element_by_id("forwardDate").send_keys(u'02.09.2012') driver.find_element_by_id("ticket_button_submit").click() time.sleep(40) self.logger.info('  ...') rawhtml = driver.find_element_by_id('ajaxTrainTable').get_attribute("innerHTML") if u'' in rawhtml: self.logger.info('!!! !!!') strlist = [x.strip() for x in rawhtml.split('\n') if x.strip()!=u''] #print strlist train = '' for i,x in enumerate(strlist): if x == u'<div class="wotnumarrow">': train = strlist[i+1].replace('<span><b>','') if x == u'': #   winsound.PlaySound('alarma.ogg', winsound.SND_NOWAIT) self.logger.info(u'-%s -%s %s' % ( train, strlist[i+3].replace('<b>','').replace('</b>',''), strlist[i+5].replace('<td><span>','').replace('</span></td>',''))) elif u'' in rawhtml: self.logger.info(' ...') elif u'' in rawhtml: self.logger.info(' ...') self.logger.info('...') driver.find_element_by_link_text("").click() def tearDown(self): self.logger.info(' ...') self.driver.close() self.driver.quit() 

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

рдкрд░рд┐рдгрд╛рдо


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

Source: https://habr.com/ru/post/In174687/


All Articles