рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЧреНрд░реИрдм: рд╕реНрдкрд╛рдЗрдбрд░

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

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

рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ?

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

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

рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдордХрдбрд╝реА рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ:

# coding: utf-8 from grab.spider import Spider, Task class SimpleSpider(Spider): initial_urls = ['http://ya.ru'] def task_initial(self, grab, task): grab.set_input('text', u'') grab.submit(make_request=False) yield Task('search', grab=grab) def task_search(self, grab, task): for elem in grab.xpath_list('//h2/a'): print elem.text_content() if __name__ == '__main__': bot = SimpleSpider() bot.run() print bot.render_stats() 


рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ? `Self.initial_urls` рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ URL рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдп рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдорд▓реНрдЯреАрдЪрд░реНрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдЬрд┐рд╕реЗ` task_initial` рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдЕрдВрджрд░ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░реИрдм-рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рддрд╛ рд╣реИ: рд╣рдо рдЧреНрд░реИрдм рдПрдкреАрдЖрдИ рд╕реЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдХрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ `make_request = False` рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдлрд╝реЙрд░реНрдо рдХреЛ рддреБрд░рдВрдд рди рднреЗрдЬрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

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

рдЯрд╛рд╕реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛:
 Task('foo', url='http://google.com') 


рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, 'task_foo` рдирд╛рдордХ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛

рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддрд░реАрдХрд╛:
 g = Grab() g.setup(....   ...) Task('foo', grab=g) 


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

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

1) рдЖрдк 'self.initial_urls` рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдкрддреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдФрд░ рдирд╛рдо' рдкреНрд░рд╛рд░рдВрднрд┐рдХ 'рдирд╛рдо рд╕реЗ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗред

2) рдЖрдк 'task_generator' рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдИ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдореЗрдВ рд╕реЗ рдирдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреБрд░рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдПрдХ рд▓рд╛рдЦ рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдУрд╣ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рд▓рд┐рдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

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

рдЯрд╛рд╕реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рджрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо Google рдЦреЛрдЬ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрдЪреНрдЫрд┐рдд url рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЯрд╛рд╕реНрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ: рдХрд╛рд░реНрдп ('рдЦреЛрдЬ', url = '...', рдХреНрд╡реЗрд░реА = рдХреНрд╡реЗрд░реА) рдЕрдЧрд▓рд╛, task_search рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд╛рд░реНрдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдХреНрд╡реЗрд░реА рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рдереЗред

рдкрдХрдбрд╝реЛ: рдордХрдбрд╝реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрдп рдЪрд▓рд╛рддрд╛ рд╣реИред рд╕реНрдкрд╛рдЗрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЖрдк 'network_try_limit` рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред

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

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

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

PS рдореИрдВ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдВрдЧреЙрдбрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ - рдпрд╣ рд╕рд┐рд░реНрдл рднрдпрд╛рдирдХ рд╣реИ :) рдмрд╕ 64 рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛, рдЕрдиреНрдпрдерд╛ рдЖрдк рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред

PS рдбрдВрдкрдЬрд╝.рдУрдЖрд░ 11 9 395 рд╕рд╛рдЗрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рд▓реА рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

Grablib.org рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА PS рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА, рдЧреВрдЧрд▓-рдЧреНрд░реБрдк рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдВрдХ рд╣реИрдВ)

PS рдореИрдВ рдЧреНрд░реИрдм рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд╕реНрдЯрдо рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдВ Grablab.org рдкрд░ рд╣реИрдВ

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


All Articles