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

рдХреИрд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдбрдХреНрд╢рди-рдЧреНрд░реЗрдб рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд░реНрд╕ рдмрдирд╛рдПрдВ

Ava Wilson
Ava Wilson

Expert in Web Scraping Technologies

25-May-2026

рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБ:

  • рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рддреАрди рдлрд╝реЗрдЪрд░реНрд╕ рдФрд░ рдЕрдиреБрдХреВрд▓рдиреАрдп рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИред HTTP Fetcher (рдмреНрд░реЛрд╕рд░ TLS рдЕрдиреБрдХрд░рдг рдХреЗ рд╕рд╛рде), Playwright-рд╕рдорд░реНрдерд┐рдд DynamicFetcher, рдФрд░ StealthyFetcher рдПрдХ рд╣реА рдкрд╛рдпрдерди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рдкреГрд╖реНрдареЛрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдирд┐рд░реНрдорд┐рдд рдкреГрд╖реНрдареЛрдВ, рдФрд░ рдорд╛рдзреНрдпрдорд┐рдХ рдПрдВрдЯреА-рдмреЙрдЯ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ тАФ рдФрд░ рдЕрдиреБрдХреВрд▓рдиреАрдп рдЪрдпрдирдХрд░реНрддрд╛ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрд░рдЪрдирд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рдирд╛рдЬреБрдХ CSS рдкрде рджреНрд╡рд╛рд░рд╛ред
  • рд╕рдВрдХрдЯ рдХреЗ рдЪрд░рдг рд╣реИрдВ HTTP тЖТ рдЫрд┐рдкрд╛рдиреЗ тЖТ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рдЙрд╕ рд╕рд╕реНрддреЗ рдлрд╝реЗрдЪрд░ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ рдЬреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдЬрдм рд╕реНрдерд╛рдиреАрдп рдЫрд┐рдкрд╛рд╡ IP рдкреНрд░рддрд┐рд╖реНрдард╛, рдЙрдиреНрдирдд рдмреЙрдЯ рдкреНрд░рдмрдВрдзрдХ, рдпрд╛ рднреВ-рд▓реЙрдХ рд╕рд╛рдордЧреНрд░реА рдкрд░ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред
  • рдПрдХреАрдХрд░рдг рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИред рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХреЗ Playwright рдлрд╝реЗрдЪрд░ рдХреЛ CDP рдкрд░ рдПрдХ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕рддреНрд░ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ тАФ DynamicFetcher.fetch(url, cdp_url=session.browser_ws_endpoint) тАФ рдФрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдкреНрд░реЙрдХреНрд╕реА рдЕрдкрддрдЯреАрдп, рдФрд░ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рд╕рднреА рдХреНрд▓рд╛рдЙрдб-рд╕рд╛рдЗрдб рд╣реЛрддреА рд╣реИрдВред
  • рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдЕрдкрддрдЯреАрдп рдФрд░ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ 195+ рджреЗрд╢реЛрдВ рдореЗрдВ рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐ рд╕рддреНрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЫрд┐рдкрд╛ рд╣реБрдЖ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • рдЕрдиреБрдХреВрд▓рдиреАрдп рдЪрдпрдирдХрд░реНрддрд╛ DOM рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рд╣рди рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдПрдХ рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдПрдХ рддрддреНрд╡ рдХреЛ рдкреБрдирдГ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЙрд╕рдХреЗ рдкрд┐рдЫрд▓реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рдХрд░, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░реИрдкрд░ рд▓рдХреНрд╖реНрдп рд╕рд╛рдЗрдЯ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдШреБрдорд╛рдиреЗ рдкрд░ рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд░рд╣рддрд╛ рд╣реИред
  • рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдирд┐:рд╢реБрд▓реНрдХред рдирдП рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдЦрд╛рддреЛрдВ рдореЗрдВ рдореБрдлреНрдд рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рд╢рд╛рдорд┐рд▓ рд╣реИ тАФ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВред

рдкрд░рд┐рдЪрдп: рдЬрдм рд╕реНрдерд╛рдиреАрдп рдЫрд┐рдкрд╛рд╡ рдХреА рд╕реАрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ

рдбрд╛рдпрдирд╛рдорд┐рдХ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рднрд╛рд░реА, рдПрдВрдЯреА-рдмреЙрдЯ-рд╕реБрд░рдХреНрд╖рд┐рдд рдкреГрд╖реНрда рд╕рд░рд▓ HTTP рд╕реНрдХреНрд░реИрдкрд░реНрд╕ рдХреА рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рд╕реНрдерд▓ рд╣реИрдВред рдПрдХ requests + рдмреНрдпреВрдЯреАрдлреБрд▓рд╕реВрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ HTTP 200 рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ рд▓реМрдЯрд╛рддреА рд╣реИ: рдпрд╣ рдорд╛рд░реНрдХрдЕрдк рдЬреЛ рдЙрд╕рдиреЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рд╡рд╣ рдХрднреА рднреА рдбреЗрдЯрд╛ рдирд╣реАрдВ рд░рдЦрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореВрд▓реНрдп, рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ, рдпрд╛ рд╕рдореАрдХреНрд╖рд╛рдПрдБ рдкрд╣рд▓реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рдж рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдкреГрд╖реНрда рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд╕реНрдХреНрд░реИрдкрд░ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рджрд┐рдЦрддрд╛ рд╣реИред

рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдордВрдЬрд┐рд▓ рдЙрдард╛рддрд╛ рд╣реИред рдпрд╣ рддреАрди рдлрд╝реЗрдЪрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рддреЗрдЬрд╝ рдкрд╛рдпрдерди рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ тАФ рдПрдХ HTTP Fetcher рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА TLS рд╣реИрдВрдбрд╢реЗрдХ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП Playwright-рд╕рдорд░реНрдерд┐рдд DynamicFetcher, рдФрд░ рдПрдХ StealthyFetcher рдЬреЛ рдЫрд┐рдкрд╛рд╡ рдкреИрдЪ рдФрд░ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ тАФ рд╕рд╛рде рд╣реА рдРрд╕реЗ рдЕрдиреБрдХреВрд▓рдиреАрдп рдЪрдпрдирдХрд░реНрддрд╛ рдЬреЛ DOM рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣рди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╕реНрдереИрддрд┐рдХ рдкреГрд╖реНрдареЛрдВ рдФрд░ рдордзреНрдпрдо рдПрдВрдЯреА-рдмреЙрдЯ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рднрд╛рдЧ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдЪрд▓ рд░рд╣рд╛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрднреА рднреА рдПрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдпрд╛ рдШрд░реЗрд▓реВ IP рдХреЗ рд╕рд╛рде рдПрдХ рдЬреНрдЮрд╛рдд рдкреНрд░рддрд┐рд╖реНрдард╛ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрдирдд рдмреЙрдЯ рдкреНрд░рдмрдВрдзрдХ рдСрдЯреЛрдореЗрд╢рди рдХрд╛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд▓реЗрддреЗ рд╣реИрдВ рдЪрд╛рд╣реЗ рдкреГрд╖реНрда рд╕реНрддрд░ рдХреА рдЫрд┐рдкрд╛рд╡ рдХрд┐рддрдиреА рднреА рд╕рд╛рдл рд╣реЛред рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкреГрд╖реНрда рдорд╛рдирд╡ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдбрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЪреБрдиреМрддреА рджреА рдЬрд╛рддреА рд╣реИред

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


рдЖрдк рдХреНрдпрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

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

  • SPA рд╕реНрдЯреЛрд░рдлреНрд░рдВрдЯ рдкрд░ рдореВрд▓реНрдп рдФрд░ рд╕реНрдЯреЙрдХ рдореЙрдирд┐рдЯрд░ред рдПрдХрд▓-рдкреГрд╖реНрда рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЙрддреНрдкрд╛рдж рдкреГрд╖реНрдареЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдХреАрдорддреЗрдВ рдПрдХ рджреВрд╕рд░реЗ XHR рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рд╛рдЗрдбреНрд░реЗрдЯ рд╣реЛрддреА рд╣реИрдВ, рдлрд┐рд░ рдЙрди рдирдВрдмрд░реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП DOM рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред
  • SERP-рд▓рдЧрднрдЧ рдирд┐рд╖реНрдХрд░реНрд╖рдгред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд┐рдк рдХрд┐рдП рдЧрдП рдЦреЛрдЬ-рд╢реИрд▓реА рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдЬреИрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рдмреНрд▓реЙрдХреЛрдВ рдФрд░ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рдХреЛ рдЦреАрдВрдЪреЗрдВ, рдлрд┐рд░ рдЕрдиреБрдХреВрд▓рдиреАрдп рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреГрд╖реНрда рдХрд░реЗрдВред
  • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рд╕реЗ рд▓реАрдб рд╕реВрдЪрд┐рдпрд╛рдБред рд╡реНрдпрд╡рд╕рд╛рдп-рд╕реВрдЪреА рдФрд░ рд╕рджрд╕реНрдп-рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЪрд▓реЗрдВ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкрд░ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрдкрд░реНрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред
  • рдЖрд╡рд╛рд╕реАрдп рдЕрдкрддрдЯреАрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреВ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдиреИрдкрд╢реЙрдЯред рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдкреНрд░реЙрдХреНрд╕реА рджреЗрд╢ рдХреЛ рдкрд┐рди рдХрд░рдХреЗ рдЙрд╕ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ, рдореВрд▓реНрдп рдпрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░реЗрдВ рдЬреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЗрдЦреЗрдЧрд╛, рди рдХрд┐ рдЬреЛ рднреА рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХрд╛ IP рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
  • рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрдареЛрдВ рдХрд╛ RAG рд╕рдВрдЧреНрд░рд╣рдгред рдкреНрд░рдХрд╛рд╢рдХ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдПрдХ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рддрд╛рдХрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкрд░рдд рдЬреЛ рдкреГрд╖реНрда рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рдЦрд╛рддреА рд╣реИ, рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░ рд╕рдХреЗ, рди рдХрд┐ рдПрдХ рдЦрд╛рд▓реА рдЦреЛрд▓ред
  • рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдордЬрдмреВрдд рд╕реНрдХреНрд░реИрдкрд░реНрд╕ред рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХреЗ рдЕрдиреБрдХреВрд▓рдиреАрдп рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣реЗрдВ рддрд╛рдХрд┐ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрдХреНрд░реИрдкрд░ рдмрд╛рдж рдореЗрдВ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд░рд╣реЗ рдЬрдм рд▓рдХреНрд╖реНрдп рд╕рд╛рдЗрдЯ рдЕрдкрдиреЗ DOM рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреА рд╣реИ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЕрдЧрд▓реА рд░реЛрди рдкрд░ рдЪреБрдкрдЪрд╛рдк рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПред
  • рдЙрдиреНрдирдд рдПрдВрдЯреА-рдмреЙрдЯ рдХреЗ рдкреАрдЫреЗ рд╣рд╛рд░реНрдб-рдЯрд╛рд░реНрдЧреЗрдЯ рдирд┐рд╖реНрдХрд░реНрд╖рдгред рдЬрдм рдПрдХ рд╕рд╛рдЗрдЯ рдПрдХ рдЙрдиреНрдирдд рдмреЙрдЯ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдЖрдЧреЗ рд▓реЛрдб рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдЫрд┐рдкрд╛рд╡ рд╕рд╛рдл рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рддреЛ рдПрдХ рд╣реА рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдмрдврд╝рд╛рдПрдБред
    рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рд▓рд╛рдЧреВ рдХрд╛рдиреВрдиреЛрдВ, рдирд┐рдпрдореЛрдВ рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреЛрд╕реНрдЯ рдХрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред

рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдХреЛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рдЬреЛрдбрд╝реЗрдВ

рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдкрд╛рд░реНрд╕рд┐рдВрдЧ,(fetcher ergonomics) рдФрд░ рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ; рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрд╕ рдмрдЪрд╛рд╡ рдХреЗ рдкреНрд▓рдВрдмрд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рджреЛрдиреЛрдВ рдПрдХ рд╕рд╛рде рд╕рд╛рдл-рд╕реБрдерд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд▓реЙрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдПрдХ рдПрдХрд▓ CDP рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рд╣реИред

  • рдПрдВрдЯреА-рдбрд┐рдЯреЗрдХреНрд╢рди рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ред рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдХрд╕рд┐рдд рдХреНрд░реЛрдорд┐рдпрдо рдкрд░ рдЪрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реНрдг рдХреНрд▓рд╛рдЙрдб-рдкрдХреНрд╖ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрд╕рдкреАрдП, рдЕрдирдВрдд-рд╕реНрдХреНрд░реЙрд▓ рдлрд╝реАрдб рдФрд░ рд▓реЗрдЬрд╝реА-рд▓реЛрдбреЗрдб рдкреИрдирд▓ рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд╛рдЗрдбреНрд░реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВред
  • 195+ рджреЗрд╢реЛрдВ рдореЗрдВ рд░реЗрдЬрд┐рдбреЗрдВрд╢рд┐рдпрд▓ рдкреНрд░реЙрдХреНрд╕реАред рдЬрдм рдЖрдк рдПрдХ рд╕рддреНрд░ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ proxy_country рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реЗрдЬрд┐рдбреЗрдВрд╢рд┐рдпрд▓ рдЖрдИрдкреА рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд▓рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рднреВ-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдкреГрд╖реНрда рд╡рд╣реА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЗрдЦрддрд╛ рд╣реИред
  • рдкреНрд░рддрд┐-рд╕реЗрд╢рди рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд░реЗрдВрдбрдорд╛рдЗрдЬреЗрд╢рдиред рдкреНрд░рддреНрдпреЗрдХ рд╕рддреНрд░ рдХреЛ рдПрдХ рд░реЗрдВрдбрдорд╛рдЗрдЬреНрдб рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдорд┐рд▓рддрд╛ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдЬреЗрдВрдЯ, рд╕рдордп рдХреНрд╖реЗрддреНрд░, рд╡реЗрдмрдЬреАрдПрд▓ рдФрд░ рдХреИрдирд╡рд╛рд╕ - рдЬрд┐рдирд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдПрдХ рд╣реА рдкрд╣рдЪрд╛рдиреЗ рдпреЛрдЧреНрдп рдкрд╣рдЪрд╛рди рдореЗрдВ рдирд╣реАрдВ рдЧрд┐рд░рддрд╛ред
  • cdp_url рдбреНрд░реЙрдк-рдЗрдиред рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕рддреНрд░ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХреЛ cdp_url рдХреЗ рд░реВрдк рдореЗрдВ DynamicFetcher.fetch(...) рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдХреЗ рдПрдкреАрдЖрдИ рдореЗрдВ рдХреБрдЫ рднреА рдЕрдиреНрдп рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ - рд╡рд╣реА рдЪрдпрдирдХрд░реНрддрд╛, рд╡рд╣реА рдкрд░рд┐рдгрд╛рдо рд╡рд╕реНрддреБрдПрдВ, рд╡рд╣реА рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдбред
  • session_ttl рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рддреНрд░ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ред рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп session_ttl рд╕реЗрдЯ рдХрд░рдХреЗ рдХрдИ рдкреГрд╖реНрда рд▓реЛрдб рдХреЗ рдмреАрдЪ рдПрдХ рд╕рддреНрд░ рдЦреБрд▓рд╛ рд░рдЦреЗрдВ, рддрд╛рдХрд┐ рдЧрд░реНрдо рдХреБрдХреАрдЬрд╝ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реНрдерд┐рддрд┐ рдПрдХрд▓ рд░рди рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмреАрдЪ рд▓реЗ рдЬрд╛рдПрдВред

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


рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдЕрдиреБрд░реЛрдзреЛрдВ, рдмреНрдпреВрдЯреАрдлреБрд▓рд╕реВрдк рдФрд░ рд╕реНрдХреНрд░реИрдкреА рд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ

рдпрджрд┐ рдЖрдкрдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕реНрдЯреИрдХ requests + BeautifulSoup рдпрд╛ Scrapy рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдХреИрд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдмреИрдардиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рдмрджрд▓рддрд╛ рд╣реИред

рдЯреВрд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ рдПрдВрдЯреА-рдмреЙрдЯ / рд╕реНрдЯреАрд▓реНрде рдЪрдпрдирдХрд░реНрддрд╛ рд╕реНрдерд┐рд░рддрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ
requests + BeautifulSoup рдирд╣реАрдВ рдХреЛрдИ рдирд╣реАрдВ (рдХрдЪреНрдЪрд╛ HTTP) рдореИрдиреНрдпреБрдЕрд▓; рд░реАрдЗрдиреНрдХрд╛рд░реНрдиреЗрд╢рди рдкрд░ рдЯреВрдЯрддрд╛ рд╣реИ рдЫреЛрдЯреЗ рд╕реНрдереИрддрд┐рдХ рдкреГрд╖реНрда рдФрд░ JSON рдПрдкреАрдЖрдИ
Scrapy рдХреЗрд╡рд▓ рдРрдб-рдСрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдЬреИрд╕реЗ, рдкреНрд▓реЗрд░реЗрдХреНрдЯ рдХрд╛ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди) рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдирд╣реАрдВ рдореИрдиреНрдпреБрдЕрд▓; рд░реАрдЗрдиреНрдХрд╛рд░реНрдиреЗрд╢рди рдкрд░ рдЯреВрдЯрддрд╛ рд╣реИ рдмрдбрд╝реЗ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреНрд░реЙрд▓ рдЬреЛ рдЖрдк рд╕реНрд╡рдпрдВ рдмрдирд╛рддреЗ рдФрд░ рд╣реЛрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ
рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ тАФ Fetcher рдирд╣реАрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░-TLS рдЕрдиреБрдХрд░рдг рдЙрдкрд▓рдмреНрдз рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ-рд╕рдЪреЗрдд HTTP рдХреЗ рд╕рд╛рде рддреЗрдЬ рд╕реНрдереИрддрд┐рдХ рдлрд╝реЗрдЪ
рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ тАФ DynamicFetcher / StealthyFetcher рд╣рд╛рдВ (рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░) рд╕реНрдЯреАрд▓реНрде рдкреИрдЪ, рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛ JS рдкреГрд╖реНрда рдФрд░ рдордзреНрдпрдо рдПрдВрдЯреА-рдмреЙрдЯ, рдЕрдкрдиреА рдорд╢реАрди рдкрд░
рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ + рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ (cdp_url) рд╣рд╛рдВ (рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░) 195+ рджреЗрд╢реЛрдВ рдореЗрдВ рд░реЗрдЬрд┐рдбреЗрдВрд╢рд┐рдпрд▓ рдкреНрд░реЙрдХреНрд╕реА + рдкреНрд░рддрд┐-рд╕реЗрд╢рди рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛ JS-рднрд╛рд░реА, рднреВ-рдмрджреНрдз, рдпрд╛ рдХрдард┐рди рдПрдВрдЯреА-рдмреЙрдЯ рдкреГрд╖реНрда рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░

рдкреНрд░рдЧрддрд┐ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рд╣реИред requests/BeautifulSoup рдХреЛ рд╡рд╣рд╛рдВ рд░рдЦреЗрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрдм рдПрдХ рдкреГрд╖реНрда рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ-рд╕рдЪреЗрдд HTTP рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдХреЗ рдлрд╝реЗрдЪрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╣реБрдВрдЪреЗрдВ, рдФрд░ рдЬрдм рд╕реНрдерд╛рдиреАрдп рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрд╝рд┐рд▓реНрдЯрд░реНрдб рд╣реЛ рдЬрд╛рддреА рд╣реИ рддреЛ рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдХреЛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ cdp_url рдкрд░ рд░реВрдЯ рдХрд░реЗрдВред рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛрдб тАФ page.css(...), page.xpath(...) тАФ рд╕рднреА рддреАрдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИред


рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИ:

  • рдкрд╛рдпрдерди 3.10+ тАФ рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ 0.4.8 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • pip тАФ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  • рдПрдХ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдЦрд╛рддрд╛ рдФрд░ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА тАФ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдореБрдлреНрдд рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ тЖТ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди рд╕реЗ рдЕрдкрдиреА рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  • CSS/XPath рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕рд╛рде рдмреБрдирд┐рдпрд╛рджреА рдкрд░рд┐рдЪрд┐рддрддрд╛ тАФ рдЖрдк рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдлрд╝реЗрдЪ рдХрд░рдиреЗ рдФрд░ рдЙрдирд╕реЗ рдорд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред

рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

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

1. рд╕реНрдХреНрд░реЗрдкрд▓рд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ SDK рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

bash Copy
pip install "scrapling[fetchers]" scrapeless
scrapling install   # DynamicFetcher / StealthyFetcher рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реНрд╕ рдХреЛ рдлрд╝реЗрдЪ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ cdp_url рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреВрд░рд╕реНрде рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЫреЛрдбрд╝ рджреЗрдВ)

scrapling[fetchers] рдЖрдкрдХреЛ рдлрд╝реЗрдЪ-рдФрд░-рдкрд╛рд░реНрд╕ рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ ( Fetcher, DynamicFetcher, рдФрд░ StealthyFetcher рдХреНрд▓рд╛рд╕реЗрд╕ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдкрд╛рд░реНрд╕реЗрд▓-рдЬреИрд╕рд╛ рдЪрдпрдирдХрд░реНрддрд╛ рдПрдкреАрдЖрдИ), рдЬрдмрдХрд┐ scrapeless рдЖрдзрд┐рдХрд╛рд░рд┐рдХ SDK рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░реЛрдВ рдХреЛ рдорд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдПрдХ CDP рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рд╕реМрдВрдкрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЬреБрдбрд╝реЗ рд░рд╣рддреЗ рд╣реИрдВред

2. рдЕрдкрдиреА рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рд╕реЗрдЯ рдХрд░реЗрдВ

рдЕрдкрдиреЗ рдХреБрдВрдЬреА рдХреЛ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХрд░реЗрдВ рддрд╛рдХрд┐ SDK рдЗрд╕реЗ рдкрдврд╝ рд╕рдХреЗ:

bash Copy
export SCRAPELESS_API_KEY=your_api_token_here

Windows рдкрд░, setx SCRAPELESS_API_KEY "your_api_token_here" (рд╕реНрдерд╛рдпреА, рдирдпрд╛ рд╢реЗрд▓) рдпрд╛ $env:SCRAPELESS_API_KEY="your_api_token_here" (рд╡рд░реНрддрдорд╛рди PowerShell рд╕рддреНрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред Scrapeless SDK рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдЪрд░ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдХреЛрдб рдореЗрдВ рдХреБрдВрдЬреА рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

3. рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХрд╛ рд╕реНрдореЛрдХ-рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВ

рддреАрди рдлрд╝реЗрдЪрд░реНрд╕ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдХреЗ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рдкреГрд╖реНрда рд╕реЗ рдХреБрдЫ рдорд╛рди рдЦреАрдВрдЪрдХрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ:

python Copy
from scrapling.fetchers import Fetcher, DynamicFetcher, StealthyFetcher

page = Fetcher.get("https://quotes.toscrape.com/")
print(page.status, len(page.css("span.text::text")), "рдЙрджреНрдзрд░рдг")  # -> 200 10 рдЙрджреНрдзрд░рдг

рдпрджрд┐ рдЖрдк 200 10 рдЙрджреНрдзрд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ Scrapling рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЖрдк Scrapeless рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред


рдХрджрдо 1 тАФ рддреАрди Scrapling рдлрд╝реЗрдЪрд░реНрд╕

Scrapling рддреАрди рдлрд╝реЗрдЪрд░реНрд╕ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рддреЗрдЬреА рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдВрдЧрддреЗ рд╣реИрдВред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд╣рд▓реНрдХрд╛ рдлрд╝реЗрдЪрд░ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдЕрд╡рд░реБрджреНрдз рдпрд╛ рдЦрд╛рд▓реА рд╡рд╛рдкрд╕ рдЖрдП, рддреЛ рдХреЗрд╡рд▓ рдЙрд╕рд╕реЗ рдмрдврд╝реЗрдВ: рд╕рд╛рдзрд╛рд░рдг HTTP рдХреЗ рд▓рд┐рдП Fetcher рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдЬрдм рдкреГрд╖реНрда рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JavaScript рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ DynamicFetcher рдкрд░ рдЬрд╛рдПрдВ, рдФрд░ рдЬрдм рдПрдХ рдПрдВрдЯреА-рдмреЙрдЯ рдкрд░рдд рдорд╛рд░реНрдЧ рдореЗрдВ рд╣реЛ рддреЛ StealthyFetcher рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдлрд╝реЗрдЪрд░ рдЗрдВрдЬрди рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдЬрдм
Fetcher HTTP via curl_cffi (рдмреНрд░рд╛рдЙрдЬрд╝рд░-TLS рдЕрдиреБрдХрд░рдг) рд╕реНрдерд┐рд░ рдкреГрд╖реНрда рдФрд░ JSON APIs - JavaScript рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ
DynamicFetcher Playwright JS-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрда, SPA, рдзреАрд░реЗ-рдзреАрд░реЗ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реА
StealthyFetcher Stealth Playwright рдПрдВрдЯреА-рдмреЙрдЯ рд░рдХреНрд╖рд╛, рдЬреИрд╕реЗ Cloudflare рдЗрдВрдЯрд░рд╕реНрдЯрд┐рд╢рд┐рдпрд▓реНрд╕

рддреАрдиреЛрдВ рдПрдХ рд╣реА рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд░реНрд╕рд▓-рдЬреИрд╕реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЪрдпрдирдХрд░реНрддрд╛ API (.css(...), .xpath(...)) рдПрдХ рд╕рдорд╛рди рд╣реИ рдЪрд╛рд╣реЗ рдХрд┐рд╕ рдлрд╝реЗрдЪрд░ рдиреЗ рдкреГрд╖реНрда рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рд╣реЛред

python Copy
from scrapling.fetchers import Fetcher

# HTTP рдлрд╝реЗрдЪ рдмреНрд░рд╛рдЙрдЬрд╝рд░-TLS рдЕрдиреБрдХрд░рдг рдХреЗ рд╕рд╛рде; рдПрдХ рдкрд╛рд░реНрд╕рд▓-рдЬреИрд╕реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
page = Fetcher.get("https://books.toscrape.com/", impersonate="chrome", stealthy_headers=True)
title = page.css("article.product_pod h3 a::attr(title)")  # -> рдкрд╣рд▓рд╛ рдкреБрд╕реНрддрдХ рд╢реАрд░реНрд╖рдХ
python Copy
from scrapling.fetchers import DynamicFetcher

# Playwright JS рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рдкреГрд╖реНрда рдХреЛ рдкрд╛рд░реНрд╕рд▓-рдЬреИрд╕реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
# рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ (run `scrapling install`) рдпрд╛ рдПрдХ рджреВрд░рд╕реНрде рдмреНрд░рд╛рдЙрдЬрд╝рд░ cdp_url рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ (рдЕрдЧрд▓рд╛ рдХрджрдо)ред
page = DynamicFetcher.fetch("https://quotes.toscrape.com/js/", network_idle=True)
quotes = page.css("span.text::text")  # -> JS-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдЙрджреНрдзрд░рдг, рдЕрдм рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ
python Copy
from scrapling.fetchers import StealthyFetcher

# Stealth Playwright рдПрдВрдЯреА-рдмреЙрдЯ рд╣реИрдВрдбрд╢реЗрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдкреГрд╖реНрда рд▓реМрдЯрд╛рддрд╛ рд╣реИред
page = StealthyFetcher.fetch("https://example.com/protected-page",
                             solve_cloudflare=True, block_webrtc=True, hide_canvas=True)
content = page.css("main ::text")  # -> рдЪреБрдиреМрддреА рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреГрд╖реНрда рдЯреЗрдХреНрд╕реНрдЯ

рдХрджрдо 2 тАФ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдЬреЛрдбрд╝рдирд╛ (рдФрд░ рдЬрд╣рд╛рдВ рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреЗрд▓реНрде рд░реБрдХрддрд╛ рд╣реИ)

рдПрдХ рд╕рд╛рдл рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ IP рдЙрди рдкрд╣рд▓реЗ рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдмреЙрдЯ рдкреНрд░рдмрдВрдзрдХ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕рд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░реВрдЯ рдХрд░рдирд╛ рдЙрди IP-рдкреНрд░рддрд┐рд╖реНрдард╛ рдЕрд╡рд░реЛрдзреЛрдВ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдкрддреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ Scrapling рдлрд╝реЗрдЪрд░ рдПрдХ рд╣реА proxy= рддрд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрджрд▓реЗ рдПрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

python Copy
from scrapling.fetchers import Fetcher, StealthyFetcher

# рдХрд┐рд╕реА рднреА рдлрд╝реЗрдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ proxy= рдкрд░ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░реЗрдВред
page = Fetcher.get("https://books.toscrape.com/",
                   proxy="http://<user>:<pass>@<host>:<port>")

# StealthyFetcher рдЗрд╕реА рддрд░реНрдХ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдпрд╣ рдПрдВрдЯреА-рдмреЙрдЯ рдЪреБрдиреМрддреА рдХреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
page = StealthyFetcher.fetch("https://example.com/protected-page",
                            proxy="http://<user>:<pass>@<host>:<port>",
                            solve_cloudflare=True)

рдпрд╣реАрдВ рдкрд░ Scrapeless рдкреНрд░реЙрдХреНрд╕реА рдХрд╣рд╛рдиреА рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддрд╛ рд╣реИред Scrapeless 195+ рджреЗрд╢реЛрдВ рдореЗрдВ рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕рд┐рдпреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ, рдФрд░ Scrapling рдХреЗ рдЖрдЧреЗ рдЙрдиреНрд╣реЗрдВ рд░рдЦрдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрде рдЙрдиреНрд╣реЗрдВ рдХреНрд▓рд╛рдЙрдб-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рд╕реНрддрд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИ: рдЬрдм рдЖрдк DynamicFetcher рдХреЛ Scrapeless рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк proxy_country рдХреЗ рд╕рд╛рде рдПрдЧреНрд░реЗрд╕ рдХреЛ рдкрд┐рди рдХрд░рддреЗ рд╣реИрдВ (рдЕрдЧрд▓реЗ рдХрджрдо рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛) рдФрд░ рдХрднреА рднреА рдкреНрд░реЙрдХреНрд╕реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЫреВрддреЗ рдирд╣реАрдВ рд╣реИрдВред Scrapeless рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░реЙрдХреНрд╕реА рдЙрддреНрдкрд╛рдж рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЧреЗрдЯрд╡реЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рд╕реАрдзреЗ Scrapling рдХреЗ proxy= рддрд░реНрдХ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ - Scrapeless рдкреНрд░реЙрдХреНрд╕реА рд╕рдорд╛рдзрд╛рди рджреЗрдЦреЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдФрд░ docs.scrapeless.com рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдЧреЗрдЯрд╡реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ <user>:<pass>@<host>:<port> рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдкреЗрд╕реНрдЯ рдХрд░рдирд╛ рд╣реИред

рдПрдХ рдЕрдЪреНрдЫреА рдкреНрд░реЙрдХреНрд╕реА IP-рдкреНрд░рддрд┐рд╖реНрдард╛ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрдХреБрдЫ рдареАрдХ рдирд╣реАрдВ рдХрд░рддреАред рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреЗрд▓реНрде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрднреА рднреА рдЙрдиреНрдирдд рдмреЙрдЯ рдкреНрд░рдмрдВрдзрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рднрд╛рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб JavaScript рдкрд░ рдЕрдЯрдХ рдЬрд╛рддреЗ рд╣реИрдВ, рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдПрдЧреНрд░реЗрд╕ IP рдХрд┐рддрдиреА рд╕рд╛рдл рд╣реИред рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ Scrapeless рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдКрдкрд░ рдЖрддрд╛ рд╣реИ - рдЕрдЧрд▓реЗ рдХрджрдо рдореЗрдВ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред


рдХрджрдо 3 тАФ Scrapling рдХреЛ Scrapeless рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ (cdp_url) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯ рдХрд░реЗрдВ

рдЬрдм рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреАрд▓реНрде рдЦрддреНрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ - рднрд╛рд░реА рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдПрдХAdvanced рдмреЛрдЯ рдкреНрд░рдмрдВрдзрдХ, рдпрд╛ рдПрдХ рдкреГрд╖реНрда рдЬреЛ рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рджреЗрд╢ рд╕реЗ рд╣рд▓ рд╣реЛрддрд╛ рд╣реИ - SDK рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕рддреНрд░ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдХреЗ CDP рдЕрдВрдд рдмрд┐рдВрджреБ рдХреЛ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХреЛ рд╕реМрдВрдкреЗрдВред SDK рд╕рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ; рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдЗрд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИред рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕реА (proxy_country) рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб-рд╕рд╛рдЗрдб рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХреЛрдб рд╡рд╣реА рд░рд╣рддрд╛ рд╣реИ рд╕рд┐рд╡рд╛рдп рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ: cdp_urlред

python Copy
from scrapeless import Scrapeless
from scrapeless.types import ICreateBrowser
from scrapling.fetchers import DynamicFetcher

client = Scrapeless()  # SCRAPELESS_API_KEY рдкрдврд╝рддрд╛ рд╣реИ
session = client.browser.create(ICreateBrowser(proxy_country="US", session_ttl=240))

page = DynamicFetcher.fetch(
    "https://quotes.toscrape.com/js/",
    cdp_url=session.browser_ws_endpoint,
    network_idle=True,
)

quotes = page.css("span.text::text")
authors = page.css("small.author::text")

session.browser_ws_endpoint рдПрдХ рд╡реЗрдмрд╕реЙрдХреЗрдЯ CDP URL рд╣реИ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ wss://browser.scrapeless.com/browser?token=...&proxy... - рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдЗрд╕рд╕реЗ рдареАрдХ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡рд╣ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрддрд╛ред рдкрд╣рд▓реЗ/рдмрд╛рдж рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рд╣реИ: рдПрдХ рд╕рд╛рдорд╛рдиреНрдп Fetcher.get рдкрд░ https://quotes.toscrape.com/js/ 0 рдЙрджреНрдзрд░рдг рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ HTTP рдкреГрд╖реНрда рдХрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬрдмрдХрд┐ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ cdp_url рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдП рдЧрдП рд╕рдорд╛рди рдкреГрд╖реНрда рдкрд░ 10 рдЙрджреНрдзрд░рдг (рдЙрдирдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд╕рд╛рде) рд░реЗрдВрдбрд░ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдХреЛрдИ рдЯреНрдпреВрдирд┐рдВрдЧ рдЯреНрд░рд┐рдХ рдирд╣реАрдВ - рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ JS рдЪрд▓рд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдкрд░рд┐рдгрд╛рдореА DOM рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред

StealthyFetcher.fetch(...) cdp_url рдХреЛ рд╕рдорд╛рди рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдк рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХреА рд╕реНрдЯреАрд▓реНрде рд▓реЗрдпрд░ рдХреЛ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдКрдкрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


рдЪрд░рдг 4 - рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛ рдЬреЛ DOM рдбреНрд░рд┐рдлреНрдЯ рд╕рд╣рди рдХрд░рддреЗ рд╣реИрдВ

рдЪреБрдирд╛рд╡рдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░реИрдкрд░ рдХрд╛ рд╕рдмрд╕реЗ рдирд╛рдЬреБрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдлрд┐рд░ рд╕реЗ рдирд╛рдо рджреЗрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рддрддреНрд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рд░ css(...) рдХреЙрд▓ рдЪреБрдкрдЪрд╛рдк рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдХрд╛ рдЕрдиреБрдХреВрд▓реА рдореЛрдб рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИред рдлреЗрдЪ рдкрд░ adaptive=True (рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ adaptive_domain=...) рдкрд╛рд╕ рдХрд░реЗрдВ, рдФрд░ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХрд╛ рдПрдХ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЬрдм DOM рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╛рдирддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рддрддреНрд╡ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рди рдХрд┐ рд╕рдЯреАрдХ рдкрде рджреНрд╡рд╛рд░рд╛, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдЪрдпрдирдХрд░реНрддрд╛ рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдкрд╛рд░ рдХрдо рд╕рдордп рдореЗрдВ рд╣рд▓ рд╣реЛрддреЗ рд░рд╣рддреЗ рд╣реИрдВред

python Copy
from scrapling.fetchers import DynamicFetcher

# рдкрд╣рд▓реА рдмрд╛рд░ рдЪрд▓рд╛рдирд╛: рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЪреБрдиреЗрдВ; рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рдерд╛ред
page = DynamicFetcher.fetch(
    "https://quotes.toscrape.com/js/",
    cdp_url=session.browser_ws_endpoint,
    network_idle=True,
    adaptive=True,
    adaptive_domain="quotes.toscrape.com",
)
quotes = page.css("span.text::text")

# рдмрд╛рдж рдореЗрдВ, рдЬрдм рд╕рд╛рдЗрдЯ рдЕрдкрдиреЗ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрд░рдо рдореЗрдВ рд▓рд╛рддреА рд╣реИ: рдЙрд╕реА рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЪреБрдиреЗрдВред
# рднрд▓реЗ рд╣реА "span.text" рдЕрдм рдореЗрд▓ рди рдЦрд╛рддрд╛ рд╣реЛ, рдЕрдиреБрдХреВрд▓реА рдореЛрдб рд╕рдВрдЧреНрд░рд╣реАрдд рддрддреНрд╡ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
page = DynamicFetcher.fetch(
    "https://quotes.toscrape.com/js/",
    cdp_url=session.browser_ws_endpoint,
    network_idle=True,
    adaptive=True,
    adaptive_domain="quotes.toscrape.com",
)
quotes = page.css("span.text::text")

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


рдЪрд░рдг 5 - рдПрдХ рдХреНрд▓рд╛рдЙрдб рд╕рддреНрд░ рдореЗрдВ рдХрдИ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХреНрд░реЙрд▓ рдХрд░реЗрдВ

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

python Copy
from scrapeless import Scrapeless
from scrapeless.types import ICreateBrowser
from scrapling.fetchers import DynamicSession

client = Scrapeless()
session = client.browser.create(ICreateBrowser(proxy_country="US", session_ttl=300))

rows = []
with DynamicSession(cdp_url=session.browser_ws_endpoint) as crawler:
    for n in range(1, 4):  # рдкреГрд╖реНрда 1..3
        url = "https://quotes.toscrape.com/js/" if n == 1 else f"https://quotes.toscrape.com/js/page/{n}/"
        page = crawler.fetch(url, network_idle=True)
        quotes = page.css("span.text::text")
        authors = page.css("small.author::text")
        rows += [{"quote": str(q), "author": str(a)} for q, a in zip(quotes, authors)]

print(len(rows), "рдкрдВрдХреНрддрд┐рдпрд╛рдБ")  # рдпрд╣рд╛рдБ рджрд╕ рдЙрджреНрдзрд░рдг рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЬрдорд╛ рд╣реЛрддреА рд╣реИрдВ

рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рджрд╕ рдЙрджреНрдзрд░рдг рдкрдВрдХреНрддрд┐рдпрд╛рдБ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдкреБрди: рдкреНрд░рдпреБрдХреНрдд рдХреНрд▓рд╛рдЙрдб-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдореЗрдВ rows рдореЗрдВ рдЬрдорд╛ рд╣реЛрддреА рд╣реИрдВред network_idle=True рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рд╣рд╛рдЗрдбреНрд░реЗрдЯ рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ; рдПрдХ рдЫреЛрдЯрд╛ рдпрд╛ рдЦрд╝рд╛рд▓реА рдкреГрд╖реНрда рдПрдХ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рдХреЗ рд░реВрдк рдореЗрдВред рдПрдХ рд╕реВрдЪреА рд╕реЗ рд╡рд┐рд╡рд░рдг рдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЛ рд▓рд╛рдПрдБ, рд╡рд┐рд╡рд░рдг URLs рдХреЛ page.css("a::attr(href)") рдХреЗ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЙрди рд╕рднреА рдХреЛ рдЙрд╕реА crawler рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд╛рдПрдБ - рдЖрд╡рд╛рд╕реАрдп рд╕рддреНрд░ рдФрд░ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдкреВрд░реЗ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд┐рд░ рд░рд╣рддреЗ рд╣реИрдВред


рдЪрд░рдг 6 - рдЙрддреНрдкрд╛рджрди рдХрдард┐рдирд╛рдИ

рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдиреМрдХрд░реА рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдмреИрдХрдкреНрд░реЗрд╢рд░ рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдХреБрдЫ рдирд┐рдпрдо рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡ рд░рдЦрддреЗ рд╣реИрдВ:

  • рд╕рдВрд╡рд╣рди рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВред рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ тЙд3 рдХреНрд▓рд╛рдЙрдб-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░реЛрдВ рдкрд░ рд░реЛрдХреЗрдВред рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдзрдХреЗрд▓рдирд╛ рджрд░-рд╕реАрдорд╛рдУрдВ рдФрд░ рдХрдиреЗрдХреНрд╢рди рд░реАрд╕реЗрдЯ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдлрд▓рддрд╛рдПрдБ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдереНрд░реВрдкреБрдЯ рдХреЛ рд╕рд╣реА рдард╣рд░рд╛рддреА рд╣реИрдВред
  • рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЕрд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмреИрдХрдСрдлрд╝ред рдЯрдирд▓ рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЬреИрд╕реЗ ERR_TUNNEL_CONNECTION_FAILED рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рд╣реЛрддреА рд╣реИрдВред рдЗрдиреНрд╣реЗрдВ рдкрдХрдбрд╝реЗрдВ, рдЧреБрдгрдирд╛рддреНрдордХ рдмреИрдХрдСрдлрд╝ рдХреЗ рд╕рд╛рде рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ - рдПрдХ рд╣реА рд╡рд┐рдлрд▓ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдореГрдд рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рди рдорд╛рдиреЗрдВред
  • ProxyRotator рдХреЗ рд╕рд╛рде рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдШреБрдорд╛рдПрдБред Scrapling рдХрд╛ ProxyRotator рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░реЙрдХреНрд╕реА рдЪрдХреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдПрдХ IP рд╕реЗ рдХрд┐рд╕реА рд▓рдХреНрд╖реНрдп рдкрд░ рдЬреЛрд░ рди рджреЗрдВ; рдЗрд╕реЗ Scrapeless рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВ рддрд╛рдХрд┐ рднреВ-рдмрд╛рдзрд┐рдд рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдПред
  • рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рд╕рддреНрд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред session_ttl (рдЬреИрд╕реЗ 240 рд╕реЗрдХрдВрдб) рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдорд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдмрд╣реБ-рдЪрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╣реА browser_ws_endpoint рдкрд╛рд╕ рдХрд░реЗрдВ - рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ, рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ, рдирд┐рдХрд╛рд╕реА рдХрд░реЗрдВ - рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рддрд╛рдЬрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦрдбрд╝рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред
  • рдЕрджреГрд╢реНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдЪрд╛рд░ рдирд▓ рд╡рд╛рд▓рд╛ рдХрд░реЗрдВред рдЕрд╕рд▓реА рдкреГрд╖реНрда рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рд░реЗрдЯрд┐рдВрдЧ, рд▓реЗрдЦрдХреЛрдВ, рдпрд╛ рдХреАрдорддреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдЧрд╛рдпрдм рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ None рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░реЗрдВ рдмрдЬрд╛рдп рдЗрд╕ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рдХрд┐ рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВ, рддрд╛рдХрд┐ рдПрдХ рдмрд┐рдЦрд░рд╛ рд╣реБрдЖ рд░рд┐рдХреЙрд░реНрдб рд░рди рдХреЛ рдХреНрд░реИрд╢ рди рдХрд░реЗред

рдЕрдкрдирд╛ рдПрдкреАрдЖрдИ рдХреА рдлреНрд░реА рдпреЛрдЬрдирд╛ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: Scrapeless


рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ

json Copy
[
  {
    "quote": "рд╣рдордиреЗ рдЬрд┐рд╕ рджреБрдирд┐рдпрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ред",
    "author": "рдЕрд▓реНрдмрд░реНрдЯ рдЖрдЗрдВрд╕реНрдЯреАрди"
  },
  {
    "quote": "рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк, рд╣реИрд░реА, рдпрд╣ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХред",
    "author": "рдЬреЗ.рдХреЗ. рд░рд╛рдЙрд▓рд┐рдВрдЧ"
  },
  {
    "quote": "рдЬреАрд╡рди рдЬреАрдиреЗ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдПрдХ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рдХреБрдЫ рднреА рдЪрдорддреНрдХрд╛рд░ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░рд╛ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ рд╕рдм рдХреБрдЫ рдЪрдорддреНрдХрд╛рд░ рд╣реИред",
    "author": "рдЕрд▓реНрдмрд░реНрдЯ рдЖрдЗрдВрд╕реНрдЯреАрди"
  }
]
// рдЖрдХрд╛рд░ рд╕реНрдЯреЗрдк 3 рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ; рдорд╛рди рдЙрджрд╛рд╣рд░рдгреАрдп рдирдореВрдиреЗ рд╣реИрдВред

рдЗрд╕ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдХреБрдЫ рдИрдорд╛рдирджрд╛рд░ рдЕрд╡рд▓реЛрдХрди:

  • JS-рд░реЗрдиреНрдбрд░реНрдб рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред https://quotes.toscrape.com/js/ рдХрд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг HTTP рдЦреЛрдЬ 0 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ; рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдЬреЛ cdp_url рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ Scrapling рдЗрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХреЗред
  • network_idle=True рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рддрдХ рд░реБрдХрд╛ рд░рд╣рддрд╛ рд╣реИ, рдЬреЛ рдЙрди рдкреГрд╖реНрдареЛрдВ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдкреЗрдВрдЯ рдХреЗ рдмрд╛рдж рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рд▓рд╛рддреЗ рд╣реИрдВред
  • рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЯреВрдЯрдиреЗ рдореЗрдВ рдХрдореА рдЖрддреА рд╣реИ, рд╕рддреНрдпрд╛рдкрди рдореЗрдВ рдирд╣реАрдВред рдпреЗ рдорд╛рдореВрд▓реА DOM рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕реЛрдЦ рд▓реЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝реЗ рдкреБрдирдГ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЕрднреА рднреА рдЪрдпрдирдХрд░реНрддрд╛ рдЦреЛрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
  • рднреВ-рдмрд╛рдзрд┐рдд рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП proxy_country рдХреЛ рдкрд┐рди рдХрд░реЗрдВред рдореВрд▓реНрдп, рдЙрдкрд▓рдмреНрдзрддрд╛, рдФрд░ рд╕рд╣рдорддрд┐ рджреАрд╡рд╛рд░реЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВ; proxy_country рд╕реЗрдЯ рдХрд░рдирд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред
  • рд╕реНрдереИрддрд┐рдХ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ Fetcher.get рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ - рдХреЗрд╡рд▓ рддрдм рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЪрдврд╝реЗрдВ рдЬрдм HTTP рдЦрд╛рд▓реА рдпрд╛ рдмреНрд▓реЙрдХ рд╣реЛ рдЬрд╛рдПред
  • рдЕрд╕реНрдерд╛рдпреА рдЯрдирд▓ рдФрд░ 5xx рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реИрдВред рдПрдХ рдмрд╛рд░ рдХрд╛ ERR_TUNNEL_CONNECTION_FAILED рдпрд╛ 500 рдЖрдорддреМрд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╢реЛрд░ рд╣реЛрддрд╛ рд╣реИ, рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рджреЛрд╖ рдирд╣реАрдВ - рдмреИрдХрдСрдлрд╝ рдХреЗ рд╕рд╛рде рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдирд┐рд╖реНрдХрд░реНрд╖: рд╣рд▓реНрдХрд╛ рдлрд╝реЗрдЪрд░ рдкрд╣рд▓реЗ, рдЬрдм рдЕрд╡рд░реБрджреНрдз рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░

рдкрд╛рдЗрдкрд▓рд╛рдЗрди рддреАрди рдореВрд╡реНрд╕ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реЛрддреА рд╣реИред рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдмрд╕реЗ рд╣рд▓реНрдХреЗ рдлрд╝реЗрдЪрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ - рд╕реНрдереИрддрд┐рдХ HTML рдХреЗ рд▓рд┐рдП Fetcher.getред рдЬрдм рдХреЛрдИ рдкреГрд╖реНрда рдЦрд╛рд▓реА, рдмреНрд▓реЙрдХ рдпрд╛ рднреВ-рдЧреЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ Scrapelling рдХреЗ cdp_url рдХреЛ session.browser_ws_endpoint рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ Scrapeless рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддрдХ рдмрдврд╝рд╛рдПрдВред рдлрд┐рд░ рдЕрдиреБрдХреВрд▓реА рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдЕрдЧрд▓реЗ рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рд╣рди рдХрд░ рд╕рдХреЗред рдЖрдк рдХреЗрд╡рд▓ рддрдм рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рджреЗрдЦреЗрдВ Scrapeless рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдлреНрд░реА рдЯрд┐рдпрд░ рдореЗрдВ рдХреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ - рдФрд░ рдЖрдкрдХреЗ рдЕрдиреНрдп рдХреЛрдб рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп Scrapling рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рд╕реЗ, рд╡рд╣реА cdp_url рдкреИрдЯрд░реНрди рдмрдбрд╝реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд▓рдЧ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЙрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рдПрдЬреЗрдВрдЯ рдореЗрдВ рддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП LangChain + Scrapeless рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВ, рдФрд░ рдПрдХ рдкреВрд░реНрдг рд╕рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Etsy рд╕реНрдХреНрд░реИрдкрд░ рд╡реЙрдХрдереНрд░реВ рджреЗрдЦреЗрдВред рдЬрд╣рд╛рдЬ рд╕реЗ рдкрд╣рд▓реЗ: SCRAPELESS_API_KEY рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ, рдХреЛрдИ рднреА рднреВ-рдмрд╛рдзрд┐рдд рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП proxy_country рдкрд┐рди рдХрд░реЗрдВ, рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ тЙд3 рд╕рддреНрд░реЛрдВ рдкрд░ рд╕рдВрд╡рд╣рди рдмрдирд╛рдП рд░рдЦреЗрдВ, рдФрд░ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдирд▓ рдпреЛрдЧреНрдп рдорд╛рдиреЗрдВред


рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрди

рдХреНрдпрд╛ рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдХрд╛рдиреВрдиреА рд╣реИ?

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

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

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

рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрдм рд╣реИ рдмрдирд╛рдо рд▓реЛрдХрд▓ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ?

рдЬрдм Fetcher.get рдбреЗрдЯрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдерд╛рдиреАрдп рд░рд╣реЗрдВ - рдпрд╣ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдорд╛рд░реНрдЧ рд╣реИред рдЬрдм рдкреГрд╖реНрда рдЧреНрд░рд╛рд╣рдХ-рдкрдХреНрд╖ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднрд╛рд░реА рд╣реЛ, рдПрдХ рдЙрдиреНрдирдд рдмреЙрдЯ рдкреНрд░рдмрдВрдзрдХ рджреНрд╡рд╛рд░рд╛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ рд╣реЛ, рдпрд╛ рднреВ-рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реЛ, рддреЛ cdp_url рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдмрдврд╝реЗрдВред рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ JS рдЪрд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдлреЗрдЪ рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХреЗ рдРрд╕реА рдПрдВрдЯреА-рдбрд┐рдЯреЗрдХреНрд╢рди рдФрд░ рдЖрд╡рд╛рд╕реАрдп рдирд┐рдХрд╛рд╕реА рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рдЖрдк рдмрд╛рд░-рдмрд╛рд░ ERR_TUNNEL_CONNECTION_FAILED рдпрд╛ 5xx рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдХреНрдпреЛрдВ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ?

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

рдореЗрд░реА рдЪрдпрдирдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯ рдХреЗ рдкреБрдирдГ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмрд╛рдж рдЯреВрдЯ рдЧрдИред рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ?

рдПрдбреИрдкреНрдЯрд┐рд╡ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ (adaptive=True рдХреЗ рд╕рд╛рде adaptive_domain=...) рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рд╕рдВрд░рдХреНрд╖рд┐рдд рддрддреНрд╡реЛрдВ рдХреЛ рдЫреЛрдЯреЗ DOM рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЬрд░рд┐рдП рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХреЗред рдмрдбрд╝реЗ рдкреБрдирдГ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдмрд╛рдж, рдЕрдкрдиреЗ рдЪрдпрдирдХрд░реНрддрд╛ рдЦреЛрдЬ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдПрдБ рддрд╛рдХрд┐ рдирдП рдорд╛рд░реНрдХрдЕрдк рдХреА рдкреБрд╖реНрдЯрд┐ рд╣реЛ рд╕рдХреЗ, рдлрд┐рд░ рдПрдбреИрдкреНрдЯрд┐рд╡ рдореЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЗрди рдмрдирд╛рдП рд░рдЦрдиреЗ рджреЗрдВред

рдХреНрдпрд╛ рдХрд┐рд╕реА рд╕рд╣рд╕рдВрдмрдВрдзреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?

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

рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ MCP рднреЗрдЬрддрд╛ рд╣реИ (pip install "scrapling[ai]") тАФ рдпрд╣ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?

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


рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ AI-рд╕рдВрдЪрд╛рд▓рд┐рдд рдбреЗрдЯрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ?

рд╣рдорд╛рд░реЗ рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рддрд╛рдХрд┐ рдПрдХ рдореБрдлреНрдд рдпреЛрдЬрдирд╛ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░реЗрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ рдЬреЛ рд╕реНрдХреНрд░реИрдкреНрд▓рд┐рдВрдЧ + рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдбреЗрдЯрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ: Discord ┬╖ Telegramред

Scrapeless рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдореБрдлреНрдд рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдХреЛ рдЕрдкрдиреЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдкреГрд╖реНрдареЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВред рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП docs.scrapeless.com рдкрд░ рдЬрд╛рдПрдВред

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

рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд▓реЗрдЦ

рд╕реВрдЪреА