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

рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рднрд░реНрддреА: рд╡реЗрдм рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдкреНрд░рддрд┐рднрд╛ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдордВрдЪ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

Michael Lee
Michael Lee

Expert Network Defense Engineer

04-Jun-2026

рдореБрдЦреНрдп рдирд┐рд╖реНрдХрд░реНрд╖:

  • рдкреНрд░рддрд┐рднрд╛ рдмрд╛рдЬрд╛рд░ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдПрдХ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ред рд╡рд╣ рд╕рд┐рдЧреНрдирд▓ рдЬреЛ рднрд░реНрддреА рд░рдгрдиреАрддрд┐, рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдмреЗрдВрдЪрдорд╛рд░реНрдХрд┐рдВрдЧ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдпреЛрдЬрдирд╛ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИ, рд╕рд╛рдореВрд╣рд┐рдХ рдкреИрдЯрд░реНрди рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ тАФ рдПрдХ рдХрдВрдкрдиреА рдХрд┐рддрдиреЗ рдкрдж рдЦреЛрд▓рддреА рд╣реИ, рдХрд┐рди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ, рдХрд┐рди рд╢рд╣рд░реЛрдВ рдореЗрдВ, рдФрд░ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ тАФ рдХрднреА рднреА рдирд╛рдорд┐рдд рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдирд╣реАрдВред рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдЗрдХрд╛рдИ рдХреЛ рдХрдВрдкрдиреА-рдФрд░-рднреВрдорд┐рдХрд╛ рдХреЗ рд╕реНрддрд░ рдкрд░ рдмрдирд╛рдП рд░рдЦреЗрдВ рдФрд░ рдкреВрд░рд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛рдиреВрди рдХреЗ рд╕рд╣реА рдкрдХреНрд╖ рдкрд░ рд░рд╣рддрд╛ рд╣реИред
  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд░реНрддреА рд╕рд┐рдЧреНрдирд▓ рдЪрд╛рд░ рд╕рддрд╣реЛрдВ рдкрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рдХрдВрдкрдиреА рдХреА рдХрд░рд┐рдпрд░ рд╕рд╛рдЗрдЯреЛрдВ рдФрд░ рдПрдЧреНрд░реАрдЧреЗрдЯрд░реНрд╕ рдкрд░ рдиреМрдХрд░реА рдкреЛрд╕реНрдЯрд┐рдВрдЧ, рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рднрд░реНрддреА рдЦрдВрдб, рдкреЗрд╢реЗрд╡рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдореЗрдВ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ, рдФрд░ рдирд┐рдпреЛрдХреНрддрд╛ рд╕рдореАрдХреНрд╖рд╛ рд╕рд╛рдЗрдЯреЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкрдХрдбрд╝рддреА рд╣реИрдВред рдПрдХ рд░реЗрдВрдбрд░ рдкреИрдЯрд░реНрди рдЪрд╛рд░реЛрдВ рдХреЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ; рдПрдХ рдорд╛рдирдХ рд╕реНрдХреАрдорд╛ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • рднрд░реНрддреА рдЧрддрд┐ рдФрд░ рдмреИрдХрдлрд┐рд▓ рд╡реНрдпреБрддреНрдкрдиреНрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╣реИрдВ, рди рдХрд┐ рд╕реНрдХреНрд░реИрдк рдХреА рдЧрдИ рдлрд╝реАрд▓реНрдбред рдЖрдк "рдЕрддреНрд░рд┐рд╢рди" рдХреЛ рд╕реНрдХреНрд░реИрдк рдирд╣реАрдВ рдХрд░рддреЗред рдЖрдк рд╕рдордп рдХреЗ рд╕рд╛рде рдкреЛрд╕реНрдЯрд┐рдВрдЧ рддрд╛рд░реАрдЦреЛрдВ рдФрд░ рднреВрдорд┐рдХрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рд╡реЗрдЧ (рдкреНрд░рддрд┐ рд╕рдкреНрддрд╛рд╣ рдирдИ рдорд╛рдВрдЧ) рдФрд░ рдмреИрдХрдлрд┐рд▓ рджрдмрд╛рд╡ (рд╕рдорд╛рди рднреВрдорд┐рдХрд╛ рд╢реАрд░реНрд╖рдХ рдЙрд╕реА рдХрдВрдкрдиреА рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрдирд╛) рдХреЛ рдЧреЛрджрд╛рдо рдореЗрдВ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред DOM рдЖрдкрдХреЛ рдЕрд╡рд▓реЛрдХрди рджреЗрддрд╛ рд╣реИ; рдЧрдгрд┐рдд рдЖрдкрдХреЛ рд╕рд┐рдЧреНрдирд▓ рджреЗрддрд╛ рд╣реИред
  • рд░реЗрдВрдбрд░ рдХреЙрд▓ рднреВ-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдФрд░ рд╕рддреНрд░-рдЧрд░реНрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЦреЛрдЬ рдкреГрд╖реНрда рдПрдХ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд░ рдХреЗ рдЕрдВрджрд░ рд░реЗрдВрдбрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдореЗрд░рд┐рдХрд╛ рдХрд╛ рдЖрд╡рд╛рд╕реАрдп рдирд┐рдХрд╛рд╕, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди, рдФрд░ рдПрдХ рдЧрд░реНрдо рд╕рддреНрд░ рд╣реЛрддрд╛ рд╣реИ тАФ рдкрд╣рд▓реЗ рд╕рд╛рдЗрдЯ рдХрд╛ рдореЗрди рдкреГрд╖реНрда рд▓реЛрдб рдХрд░реЗрдВ, рдлрд┐рд░ рд▓рдХреНрд╖рд┐рдд рдЦреЛрдЬ URLред рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдПрдХ URL рдХреЗ рд╕рд╛рде рдПрдХ рджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реНрдг рдкреЗрдВрдЯреЗрдб DOM рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  • рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдмрд╛рд╣рд░ рд░рд╣рддрд╛ рд╣реИред рдпрд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдиреМрдХрд░реА рдХреЗ рд╢реАрд░реНрд╖рдХ, рд╡рд┐рднрд╛рдЧ, рд╕реНрдерд╛рди, рд╡рд░рд┐рд╖реНрдарддрд╛ рдмреИрдВрдб рдФрд░ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЧрдгрдирд╛ рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИ тАФ рдирд╛рдо, рд╕рдВрдкрд░реНрдХ рд╡рд┐рд╡рд░рдг, рдпрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реЛрдЬрдЧрд╛рд░ рдЗрддрд┐рд╣рд╛рд╕ рдирд╣реАрдВред рдиреАрдЪреЗ рдЕрдиреБрдкрд╛рд▓рди рдЦрдВрдб рд╡рд╣ рдЕрдиреБрдмрдВрдз рд╣реИ рдЬреЛ рдЕрд╕реНрд╡реАрдХрд░рдг рдХреЛ рд╕рддреНрдп рдмрдирд╛рддрд╛ рд╣реИред
  • рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ред рдирдП рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдЦрд╛рддреЛрдВ рдореЗрдВ рдореБрдлреНрдд рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рд╢рд╛рдорд┐рд▓ рд╣реИ тАФ app.scrapeless.com рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВред

рдкрд░рд┐рдЪрдп: рдмрд┐рдЦрд░реА рд╣реБрдИ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рднрд░реНрддреА-рдорд╛рд░реНрдХреЗрдЯ рд╕рд┐рдЧреНрдирд▓

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

рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЪреБрдиреМрддреА "рдПрдХ рдиреМрдХрд░реА рдмреЛрд░реНрдб рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд░рдирд╛" рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рдПрдХ рдмasket рдХреЗ рдмреАрдЪ, рднрд░реНрддреА рд╕рддрд╣реЛрдВ рдХреА рдПрдХ рдмрд╛рд╕реНрдХреЗрдЯ рдХреЗ рдмреАрдЪ, рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдПрдХ рдмрд╛рд╕реНрдХреЗрдЯ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдЦреНрдд рдлреИрди-рдЖрдЙрдЯ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ тАФ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░, рд╣рд░ рд░рди рдореЗрдВ рд╕рдорд╛рди рд╕рдЯреАрдХрддрд╛ garanties рдХреЗ рд╕рд╛рдеред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд░рд┐рдпрд░ рдкреГрд╖реНрда React рдФрд░ Next.js рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдореЗрдВ рд╣реИрдВ рдЬрд╣рд╛рдВ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдкреЗрдВрдЯ рд╣реЛрддреА рд╣реИред рдПрдЧреНрд░реАрдЧреЗрдЯрд░реНрд╕ рдХреНрд╖реЗрддреНрд░ рдФрд░ рдЖрдИрдкреА рдкреНрд░рддрд┐рд╖реНрдард╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рд┐рдгрд╛рдо рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдПрдХ рдПрдВрдЯреА-рдмреЙрдЯ рд╕реНрддрд░ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реЗрдВрдбрд░ рдХреА рдЧрдИ рдкреГрд╖реНрда рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдирд╛ рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдПрдХ рдЦрд╛рд▓реА рдЦреЛрд▓ред рдФрд░ рдЙрди рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рд▓рд╛рдкрд░рд╡рд╛рд╣ рдЪрдпрдирдХрд░реНрддрд╛ рд╕реЗ рдирд╛рдо, рдИрдореЗрд▓, рдпрд╛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрд╛рд╕ рдмреИрдарддрд╛ рд╣реИ тАФ рдбреЗрдЯрд╛ рдЬрд┐рд╕реЗ рдпрд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрднреА рдирд╣реАрдВ рдЫреВрдирд╛ рдЪрд╛рд╣рд┐рдПред

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


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

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

рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрдпреЛрдВ рдЯреИрд▓реЗрдВрдЯ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЗ рд▓рд┐рдП

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

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

рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреА рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рдпреЛрдЬрдирд╛ рдкрд░ рдЬрд╛рдПрдБ app.scrapeless.com.


рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ

  • рдкрд╛рдпрдерди 3.10 рдпрд╛ рдирдпрд╛
  • рдПрдХ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдЦрд╛рддрд╛ рдФрд░ рдПрдкреАрдЖрдИ рдХреА тАФ app.scrapeless.com рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ
  • pip install playwright lxml pyyaml cssselect рдФрд░ рдПрдХ рдмрд╛рд░ playwright install chromium (рд╕реНрдерд╛рдиреАрдп рдХреНрд░реЛрдорд┐рдпрдо рдХреЗрд╡рд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдмреЛрд▓рддрд╛ рд╣реИ; рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЪрд▓рддреА рд╣реИ)
  • CSS рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЧреЛрджрд╛рдо рд▓рдХреНрд╖реНрдп (рд╕реНрдиреЛрдлреНрд▓реЗрдХ, рдмрд┐рдЧрдХреНрд╡реЗрд░реА, рдбрдХрдбреАрдмреА, рдпрд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдПрд╕) рд╕реЗ рдкрд░рд┐рдЪрд┐рддрддрд╛
  • рдПрдХ рдХрдВрдкрдиреА-рдФрд░-рд╕реНрд░реЛрдд рдмрд╛рд╕реНрдХреЗрдЯ рдлрд╝рд╛рдЗрд▓

рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ

Copy
basket.yaml                       (рд╡рд┐рд╢реНрд▓реЗрд╖рдХ-рдкрд░рд┐рднрд╛рд╖рд┐рдд: рдХрдВрдкрдирд┐рдпрд╛рдБ ├Ч рд╕реНрд░реЛрдд ├Ч рдХреНрд╖реЗрддреНрд░)
       тФВ
       тЦ╝
тФМтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФР
тФВ   рдЖрдпреЛрдЬрдХ        тФВ  (рдХрдВрдкрдиреА, рд╕реНрд░реЛрдд, рдХреНрд╖реЗрддреНрд░) рдкреНрд░рддрд┐ рдПрдХ рдХрд╛рд░реНрдп; рд╕реАрдорд┐рдд рдлреИрди-рдЖрдЙрдЯ
тФФтФАтФАтФАтФАтФАтФАтФмтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФШ
       тФВ
       тЦ╝
тФМтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФР
тФВ   рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕     тФВ  connect_over_cdp тЖТ рдЧрд░реНрдо рд╣реЛрдордкреЗрдЬ тЖТ рд▓реЛрдб рд╕рд░реНрдЪ URL
тФВ  (рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░) тФВ  рдЕрдореЗрд░рд┐рдХреА рдЖрд╡рд╛рд╕реАрдп рдирд┐рдХрд╛рд╕реА, JS рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдПрдВрдЯреА-рдбрд┐рдЯреЗрдХреНрд╢рди
тФФтФАтФАтФАтФАтФАтФАтФмтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФШ
       тФВ  рд░реЗрдВрдбрд░ рдХреА рдЧрдИ HTML
       тЦ╝
тФМтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФР
тФВ   рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░реНрддрд╛  тФВ  рд╕реНрд░реЛрдд-рдкреНрд░рддрд┐ рдПрдХреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ тЖТ рдорд╛рдирдХ рдкрджрдиSchema
тФФтФАтФАтФАтФАтФАтФАтФмтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФШ
       тФВ
       тЦ╝
postings.ndjson           (рдПрдХ рдкрдВрдХреНрддрд┐ рдкреНрд░рддрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрдж рдЕрд╡рд▓реЛрдХрди)
       тФВ
       тЦ╝
рдЧреЛрджрд╛рдо рд▓реЛрдб + рд╡реНрдпреБрддреНрдкрдиреНрди рд╡реЗрдЧ / рдмреИрдХрдлрд┐рд▓ / рдХрд╛рд░реНрдп-рдорд┐рдХреНрд╕ + рдЕрд▓рд░реНрдЯ

рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдПрдХ рдкрд╛рдЗрдерди рдореЙрдбреНрдпреВрд▓ рд╣реИ; рдиреАрдЪреЗ рд╕рд╛рдд рдХрджрдо рдЗрд╕реЗ рдирд┐рдЪрд▓реЗ рд╕реЗ рдКрдкрд░ рдХреА рдУрд░ рдмрдирд╛рддреЗ рд╣реИрдВред


рдХрджрдо 1 тАФ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ

рдХрдиреЗрдХреНрд╢рди рдПрдХрд▓ рд╡реЗрдмрд╕реЛрдХреЗрдЯ URL рд╣реИред рдЗрд╕реЗ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреА, рдирд┐рдХрд╛рд╕реА рджреЗрд╢ рдФрд░ рдПрдХ рд╕рддреНрд░ рдЬреАрд╡рди-рдХрд╛рд▓ рдХреЗ рд╕рдордп рд╕реЗ рдмрдирд╛рдПрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдкреНрд▓реЗрд╡реЗрдЗрдЯ рдХреЗ connect_over_cdp рдХреЛ рд╕реМрдВрдкреЗрдВред рдпрд╣ рд╕рд┐рджреНрдз рдХрдиреЗрдХреНрд╢рди рдЖрдХрд╛рд░ рд╣реИ тАФ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдВрдд рдмрд┐рдВрджреБ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░реЗрдВ:

python Copy
import os
from urllib.parse import urlencode
from playwright.sync_api import sync_playwright

def scraping_browser_url(proxy_country="US", session_ttl=240):
    params = urlencode({
        "token": os.environ["SCRAPELESS_API_KEY"],
        "sessionTTL": session_ttl,
        "proxyCountry": proxy_country,
    })
    return f"wss://browser.scrapeless.com/api/v2/browser?{params}"

proxyCountry="US" рдЖрд╡рд╛рд╕реАрдп рдирд┐рдХрд╛рд╕реА рдХреЛ рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рд░ рд░рд┐рдХреЙрд░реНрдб рдмрдВрдбрд▓ рдХреЛ рдПрдХ рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдорд╛рдкрд╛ рдЬрд╛ рд╕рдХреЗ тАФ рд░рдиреЛрдВ рдХреЗ рджреМрд░рд╛рди рдирд┐рдХрд╛рд╕реА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рдПрдХ рдкрдж рдЗрддрд┐рд╣рд╛рд╕ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдХреЛрдИ рдЕрд░реНрде рдирд╣реАрдВ рд╣реЛрддрд╛ред sessionTTL=240 рдХреНрд▓рд╛рдЙрдб рд╕рддреНрд░ рдХреЛ рдЪрд╛рд░ рдорд┐рдирдЯ рддрдХ рдЬреАрд╡рд┐рдд рд░рдЦрддрд╛ рд╣реИ, рдЬреЛ рд╣реЛрдордкреЗрдЬ рдХреЛ рдЧрд░реНрдо рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрд╕реА рд╕рддреНрд░ рдореЗрдВ рдПрдХ рдкреГрд╖реНрдард┐рдд рдЦреЛрдЬ рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред


рдХрджрдо 2 тАФ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреМрдХрд░реА-рдЦреЛрдЬ рдкреГрд╖реНрда рд░реЗрдВрдбрд░ рдХрд░реЗрдВ (рдкрд╣рд▓реЗ рд╕рддреНрд░ рдХреЛ рдЧрд░реНрдо рдХрд░реЗрдВ)

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

python Copy
from playwright.sync_api import sync_playwright

def render_search_page(homepage_url: str, search_url: str,
                       proxy_country: str = "US") -> str:
    """рдЧрд░реНрдо рд╣реЛрдордкреЗрдЬ, рдлрд┐рд░ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдиреМрдХрд░реА-рдЦреЛрдЬ рдкреГрд╖реНрда рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВред"""
```python
with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(
            scraping_browser_url(proxy_country=proxy_country)
        )
        context = browser.contexts[0] if browser.contexts else browser.new_context()
        page = context.pages[0] if context.pages else context.new_page()

        # 1) рдкрд╣рд▓реЗ рд╣реЛрдордкреЗрдЬ рдкрд░ рд╕рддреНрд░ рдХреЛ рдЧрд░реНрдо рдХрд░реЗрдВред
        page.goto(homepage_url, wait_until="domcontentloaded", timeout=60_000)
        page.wait_for_timeout(1_500)

        # 2) рдЕрдм рд▓рдХреНрд╖рд┐рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЦреЛрдЬ рдкреГрд╖реНрда рд▓реЛрдб рдХрд░реЗрдВ; рдЧреНрд░рд┐рдб рд╣рд╛рдЗрдбреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рд░рдВрдЧ рд▓рд╛рддрд╛ рд╣реИред
        page.goto(search_url, wait_until="networkidle", timeout=60_000)
        page.wait_for_selector("[data-posting], article, li", timeout=20_000)

        html = page.content()
        browser.close()
        return html

wait_until="networkidle" рд╕реВрдЪреА рдЧреНрд░рд┐рдб рдХреЛ рд░рдВрдЧ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ page.content() DOM рдХрд╛ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗред wait_for_selector рддрдм рддрдХ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдореМрдЬреВрдж рди рд╣реЛ, рддрд╛рдХрд┐ рдЪрд░рдг 4 рдореЗрдВ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХрднреА рднреА рдЦрд╛рд▓реА рдкреГрд╖реНрда рдХреЗ рдЦрд┐рд▓рд╛рдл рди рдЪрд▓реЗред proxy_country рдХреЛ рд╡рд╣реА рдмрд╛рд╕реНрдХреЗрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдкрд┐рди рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╡рд╣ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдиреМрдХрд░реА рдХрд╛ рдЦреЛрдЬрдХрд░реНрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реИред


рдЪрд░рдг 3 тАФ рдХрдВрдкрдиреА рдФрд░ рд╕реНрд░реЛрдд рдмрд╛рд╕реНрдХреЗрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ

рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдЯреАрдо рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рдорд╛рд▓рд┐рдХ рд╣реИред рдЗрд╕реЗ рдмреЛрд░рд┐рдВрдЧ рд░рдЦреЗрдВ тАФ рдХрдВрдкрдирд┐рдпрд╛рдБ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдкрдврд╝рдиреЗ рд╣реЗрддреБ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рднрд░реНрддреА рд╕рддрд╣реЗрдВ, рдФрд░ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ред рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ (рдХрдВрдкрдиреА, рд╕реНрд░реЛрдд, рдХреНрд╖реЗрддреНрд░) рдкреНрд░рддрд┐ рдЬрд┐рд╕рдореЗрдВ рдЧрд░реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрдордкреЗрдЬ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЦреЛрдЬ URL рд╣реЛ:

yaml Copy
# рдмрд╛рд╕реНрдХреЗрдЯ.yaml
regions:
  - US

companies:
  - company: target_company_a
    sources:
      - source: company_careers
        homepage: "https://careers.example-company-a.com/"
        search:
          US: "https://careers.example-company-a.com/jobs?country=US"
      - source: public_aggregator
        homepage: "https://jobs.example-aggregator.com/"
        search:
          US: "https://jobs.example-aggregator.com/search?q=engineering&loc=US"
  - company: target_company_b
    sources:
      - source: company_careers
        homepage: "https://careers.example-company-b.com/"
        search:
          US: "https://careers.example-company-b.com/openings"

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


рдЪрд░рдг 4 тАФ рдорд╛рдирдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдирд┐рдХрд╛рд▓реЗрдВ

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

python Copy
from dataclasses import dataclass, asdict
from datetime import datetime, timezone
from typing import Optional
from lxml import html as lxml_html

@dataclass
class PostingRecord:
    company: str
    source: str
    region: str
    posting_id: str                 # рд╕реНрдерд┐рд░ рдкреНрд░рддрд┐-рд╕реНрд░реЛрдд рдЖрдИрдбреА рдпрд╛ рд╢реАрд░реНрд╖рдХ+рд╕реНрдерд╛рди рдХрд╛ рд╣реИрд╢
    role_title: str
    function: Optional[str]          # "engineering" | "sales" | "ops" | ...
    seniority: Optional[str]         # "junior" | "mid" | "senior" | "staff" | None
    location: Optional[str]          # рд╢рд╣рд░ / рдореЗрдЯреНрд░реЛ / "рджреВрд░рд╕реНрде"
    posted_date: Optional[str]       # ISO рджрд┐рдирд╛рдВрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреЛ рдкреГрд╖реНрда рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ None
    salary_band: Optional[str]       # рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╕реАрдорд╛ рдЬрд╣рд╛рдБ рдкреГрд╖реНрда рдПрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
    captured_at: str                 # ISO-8601 UTC, рдкрдврд╝рдиреЗ рдХреЗ рд╕рдордп рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛

рдкреНрд░рддрд┐-рд╕реНрд░реЛрдд рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рд╕рдорд╛рди рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкреНрд▓рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдб рдЧреНрд░рд┐рдб рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ; рд╕реНрд░реЛрдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡реИрдк рдХрд░реЗрдВ:

python Copy
def extract_company_careers(html: str, company: str, source: str,
                            region: str) -> list[PostingRecord]:
    doc = lxml_html.fromstring(html)
    records: list[PostingRecord] = []

    for card in doc.cssselect("[data-posting], article.job-card"):
        title_el = card.cssselect(".job-title, h3")
        loc_el = card.cssselect(".job-location, [data-location]")
        date_el = card.cssselect("time, [data-posted]")
        pay_el = card.cssselect(".salary, [data-comp]")

        title = title_el[0].text_content().strip() if title_el else ""
        if not title:
            continue  # рдЧреИрд░-рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдб рдЫреЛрдбрд╝ рджреЗрдВ; рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╢реАрд░реНрд╖рдХ рдХрд╛ рдорддрд▓рдм рдЕрд╕рд▓реА рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ

        location = loc_el[0].text_content().strip() if loc_el else None
        posted = (date_el[0].get("datetime") or date_el[0].text_content().strip()) if date_el else None

        records.append(PostingRecord(
            company=company,
            source=source,
            region=region,
            posting_id=_posting_id(card, title, location),
            role_title=title,
            function=_classify_function(title),
            seniority=_classify_seniority(title),

Here's the translated Hindi text:

python Copy
рд╕реНрдерд╛рди=рд╕реНрдерд╛рди,
            рдкреЛрд╕реНрдЯреЗрдб_рддрд┐рдерд┐=рдкреЛрд╕реНрдЯреЗрдб,
            рд╡реЗрддрди_band=pay_el[0].text_content().strip() рдЕрдЧрд░ pay_el рдЕрдиреНрдпрдерд╛ None,
            рдХреИрдкреНрдЪрд░_рдЕрдд=datetime.now(timezone.utc).isoformat(),
        ))
    рд░рд┐рдЯрд░реНрди рд░рд┐рдХреЙрд░реНрдб

рд╡рд░реНрдЧреАрдХрд░рдг рд╕рд╣рд╛рдпрдХ Extractor рдореЗрдВ рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВ, DOM рдореЗрдВ рдирд╣реАрдВред рд╡реЗ рдПрдХ рднреВрдорд┐рдХрд╛ рд╢реАрд░реНрд╖рдХ рдХреЛ рдПрдХ рдореЛрдЯреЗ рдХрд╛рд░реНрдп рдФрд░ рд╡рд░рд┐рд╖реНрдарддрд╛ рдмреИрдВрдб рдкрд░ рдореИрдк рдХрд░рддреЗ рд╣реИрдВ - рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ:

python Copy
import hashlib

_FUNCTION_KEYWORDS = {
    "рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ": ("рдЗрдВрдЬреАрдирд┐рдпрд░", "рдбреЗрд╡рд▓рдкрд░", "sre", "рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо", "ml ", "рдбреЗрдЯрд╛ "),
    "рдмрд┐рдХреНрд░реА": ("рдмрд┐рдХреНрд░реА", "рдЕрдХрд╛рдЙрдВрдЯ рдХрд╛рд░реНрдпрдХрд╛рд░реА", "рдЕрдХрд╛рдЙрдВрдЯ рдкреНрд░рдмрдВрдзрдХ", "sdr"),
    "рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ": ("рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ", "рд╡рд┐рдХрд╛рд╕", "рдмреНрд░рд╛рдВрдб", "рд╕рд╛рдордЧреНрд░реА"),
    "рдСрдкрд░реЗрд╢рдВрд╕": ("рдСрдкрд░реЗрд╢рдВрд╕", "рдЖрдкреВрд░реНрддрд┐", "рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХреНрд╕", "рд╕рдорд░реНрдерди"),
}
_SENIORITY_KEYWORDS = {
    "рд╕реНрдЯрд╛рдл": ("рд╕реНрдЯрд╛рдл", "рдкреНрд░рдзрд╛рди", "рдкреНрд░рддрд┐рд╖реНрдард┐рдд"),
    "рд╕реАрдирд┐рдпрд░": ("рд╕реАрдирд┐рдпрд░", "sr.", "рд▓реАрдб"),
    "рдЬреВрдирд┐рдпрд░": ("рдЬреВрдирд┐рдпрд░", "jr.", "рдЗрдВрдЯрд░реНрди", "рдкреНрд░рд╡реЗрд╢"),
}

def _classify(title: str, table: dict) -> Optional[str]:
    low = title.lower()
    for label, kws in table.items():
        if any(kw in low for kw in kws):
            return label
    return None

def _classify_function(title: str) -> Optional[str]:
    return _classify(title, _FUNCTION_KEYWORDS)

def _classify_seniority(title: str) -> Optional[str]:
    return _classify(title, _SENIORITY_KEYWORDS) рдпрд╛ "рдордзреНрдпрдо"

def _posting_id(card, title: str, location: str | None) -> str:
    native = card.get("data-posting-id") рдпрд╛ card.get("id")
    if native:
        return native.strip()
    # рд╢реАрд░реНрд╖рдХ + рд╕реНрдерд╛рди рдХрд╛ рд╕реНрдерд┐рд░ рд╣реИрд╢ рдкреБрдирдГ-рдкреНрд░рдХрд╛рд╢рд┐рдд рднреВрдорд┐рдХрд╛ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред
    рдЖрдзрд╛рд░ = f"{title}|{location рдпрд╛ ''}".lower().encode("utf-8")
    return hashlib.sha1(basis).hexdigest()[:16]

рдЪреБрдирдиреЗ рдХреА рдбрд┐рдЬрд╛рдЗрди рдиреЛрдЯреНрд╕:

  • рдЬрдм рд╕реНрд░реЛрдд рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ [data-posting] / data-* рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред рд╡реЗ рд╕реМрдВрджрд░реНрдпрд╛рддреНрдордХ рдХрдХреНрд╖рд╛ рдирд╛рдо рдХреЗ рдШреБрдорд╛рд╡реЛрдВ рдХреЛ рд╕рд╣рди рдХрд░рддреЗ рд╣реИрдВ; рдХрдХреНрд╖рд╛рдПрдБ рдЬреИрд╕реЗ .text-lg.font-semibold рд╣рд░ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрджрд▓рддреА рд╣реИрдВред
  • рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдирд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВред рдПрдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдкреНрд░рдХрд╛рд╢рд┐рдд posted_date рдпрд╛ salary_band рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рднреА рдПрдХ рд╡реИрдз рдЕрд╡рд▓реЛрдХрди рд╣реИ - None рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
  • рдирд┐рдпреБрдХреНрддрд┐_рдЖрдИрдбреА рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░реЗрдВред рд╢реАрд░реНрд╖рдХ + рд╕реНрдерд╛рди рдХрд╛ рд╣реИрд╢ рд╡рд╣реА рд╣реИ рдЬреЛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдХреЛ рдпрд╣ рдкрд╣рдЪрд╛рдирдиреЗ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рднреВрдорд┐рдХрд╛ рдкреБрдирдГ рдкреНрд░рдХрдЯ рд╣реЛ рд░рд╣реА рд╣реИ - рдкрд┐рдЫрд▓реЗ рдбреЗрдЯрд╛ рднрд░реЗ рдЬрд╛рдиреЗ рдХреА рдкрд╣рдЪрд╛рди рдХрд╛ рдЖрдзрд╛рд░ - рдмрд┐рдирд╛ рдХрднреА рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рди рдХрд┐рдПред

рдЕрдкрдиреЗ API рдХреБрдВрдЬреА рдХреЛ рдореБрдХреНрдд рдпреЛрдЬрдирд╛ рдкрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: app.scrapeless.com


рдЪрд░рдг 5 - рдмрд╛рд╕реНрдХреЗрдЯ рдореЗрдВ рдЪрд▓реЗрдВ

рдкреНрд░рддреНрдпреЗрдХ (рдХрдВрдкрдиреА, рд╕реНрд░реЛрдд, рдХреНрд╖реЗрддреНрд░) рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд░реЗрдВрдбрд░ рд╣реИред рдЧрд░реНрдо-рдлрд┐рд░-рд▓реЛрдб рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рддреНрд░ рдХреЗ рднреАрддрд░ рдЪрд▓рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╛рд╕реНрдХреЗрдЯ рдЪрд▓рд╛рдирд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓реВрдк рд╣реИ (рдпрд╛ рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдереНрд░реЗрдб рдкреВрд▓, рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ рддреАрди рд╢реНрд░рдорд┐рдХреЛрдВ рдкрд░ рд╕реАрдорд╛):

python Copy
import yaml

def load_basket(path: str = "basket.yaml") -> dict:
    with open(path, encoding="utf-8") as f:
        return yaml.safe_load(f)

def walk_basket(basket: dict):
    """рдкреНрд░рддреНрдпреЗрдХ (рдХрдВрдкрдиреА, рд╕реНрд░реЛрдд, рдХреНрд╖реЗрддреНрд░) рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрд┐рдВрдЧ рд░рд┐рдХреЙрд░реНрдб рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред"""
    for item in basket["companies"]:
        for src in item["sources"]:
            for region, search_url in src["search"].items():
                html = render_search_page(
                    homepage_url=src["homepage"],
                    search_url=search_url,
                    proxy_country=region,
                )
                yield extract_company_careers(
                    html, item["company"], src["source"], region
                )

рдПрдХ рдмрдбрд╝реЗ рдмрд╛рд╕реНрдХреЗрдЯ рдХреЗ рд▓рд┐рдП, render_search_page рдХреЛ concurrent.futures.ThreadPoolExecutor рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдФрд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ рддреАрди рдкрд░ рдпрд╛ рдиреАрдЪреЗ рд░рдЦреЗрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рддреНрд░ рдХреЛ рдЧрд░реНрдо рдФрд░ рд▓реЛрдб рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдмрдврд╝рддреА рд╣реИ - рд╕рд╛рдЭрд╛ рд╕рддреНрд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдЪрд░рдг 6 - рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рд▓реЛрдб рдХреЗ рд▓рд┐рдП NDJSON рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХрд░реЗрдВ

NDJSON рдореЗрдВ рд╕реНрдЯреНрд░реАрдо-рд▓реЗрдЦрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдПрдХ рдордзреНрдп-рдЪрд╛рд▓ рд░реБрдХрд╛рд╡рдЯ рдХреЛ рдмрд┐рдирд╛ рд░рд┐рдХреЙрд░реНрдб рдЦреЛрдП рд╕рд╣рди рдХрд░ рд╕рдХреЗред рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдЕрд╡рд▓реЛрдХрди рд╣реИ; рдлрд╝рд╛рдЗрд▓ рдХреЗрд╡рд▓-рд╕рдВрд▓рдЧреНрди рд╣реИ:

python Copy
import json
from pathlib import Path

def append_records(records: list[PostingRecord], out_path: str = "postings.ndjson"):
    Path(out_path).parent.mkdir(parents=True, exist_ok=True)
    with open(out_path, "a", encoding="utf-8") as f:
        for r in records:
            f.write(json.dumps(asdict(r)) + "\n")

NDJSON рд╕реАрдзреЗ Snowflake (COPY INTO ... FILE_FORMAT = (TYPE = JSON)), BigQuery (bq load --source_format=NEWLINE_DELIMITED_JSON), Redshift, ClickHouse, рдФрд░ DuckDB рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЙрд╕ BI рд╕реНрдЯреИрдХ рдХреЛ рдЪреБрдиреЗрдВ рдЬрд┐рд╕рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╕реНрдХреАрдорд╛ рдПрдХ рдЬреИрд╕рд╛ рд╣реИред


рдЪрд░рдг 7 - рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдореЗрдВ рд╕реНрдХреЛрд░рд┐рдВрдЧ рдореЙрдбрд▓ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░реЗрдВ

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

sql Copy
-- рд╣рд╛рдпрд░рд┐рдВрдЧ рд╡реЗрд▓реЛрд╕рд┐рдЯреА: рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрдиреА рдкреНрд░рддрд┐ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдирдП рдкреЛрд╕реНрдЯрд┐рдВрдЧ, рдЕрдВрддрд┐рдо 7 рджрд┐рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ 7
WITH obs AS (
  SELECT company, function, posting_id,

Here is the translated text in Hindi:

sql Copy
CAST(posted_date AS DATE) AS posted_date,
         CAST(captured_at AS DATE) AS captured_date
  FROM talent_postings
  WHERE posted_date IS NOT NULL
),
windowed AS (
  SELECT company, function,
    COUNT(DISTINCT CASE WHEN posted_date >= CURRENT_DATE - 7  THEN posting_id END) AS reqs_last_7,
    COUNT(DISTINCT CASE WHEN posted_date >= CURRENT_DATE - 14
                         AND posted_date <  CURRENT_DATE - 7  THEN posting_id END) AS reqs_prior_7
  FROM obs
  GROUP BY company, function
)
SELECT company, function, reqs_last_7, reqs_prior_7,
       reqs_last_7 - reqs_prior_7 AS velocity_delta
FROM windowed
ORDER BY velocity_delta DESC;

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

sql Copy
-- рдмреИрдХрдлрд┐рд▓ рд╕рд┐рдЧреНрдирд▓: рдПрдХ posting_id рдЬреЛ рдЧрд╛рдпрдм рд╣реЛрддрд╛ рд╣реИ рдлрд┐рд░ рдЙрд╕реА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ
SELECT company, posting_id, role_title,
       COUNT(*)                       AS times_observed,
       MIN(CAST(captured_at AS DATE)) AS first_seen,
       MAX(CAST(captured_at AS DATE)) AS last_seen
FROM talent_postings
GROUP BY company, posting_id, role_title
HAVING MAX(CAST(captured_at AS DATE)) - MIN(CAST(captured_at AS DATE)) > 21
   AND COUNT(DISTINCT CAST(captured_at AS DATE)) >= 2
ORDER BY company, times_observed DESC;

рд╡реНрдпреБрддреНрдкрдиреНрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЙрди рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд░реВрдЯ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдеreshhold рд╕реЗ рдКрдкрд░ рд╡реЗрд▓реЙрд╕рд┐рдЯреА-рдбреЗрд▓реНрдЯрд╛ тЖТ рд░рдгрдиреАрддрд┐ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛рддреНрдордХ-рднрд░реНрддреА рдЕрд▓рд░реНрдЯред
  • рдирдИ рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдпрд╛ рдирдпрд╛ рдореЗрдЯреНрд░реЛ рдкреНрд░рдХрдЯ рд╣реЛрдирд╛ тЖТ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдмрд╛рдЬрд╛рд░-рд╡рд┐рд╕реНрддрд╛рд░ рд╕реВрдЪрдирд╛ред
  • рдПрдХрд▓ рднреВрдорд┐рдХрд╛ рдкрд░ рдЙрдЪреНрдЪ рдмреИрдХрдлрд┐рд▓ рд╕рдВрдЦреНрдпрд╛ тЖТ рдкреНрд░рддрд┐рднрд╛-рдЕрдзрд┐рдЧреНрд░рд╣рдг рд╕рд┐рдЧреНрдирд▓ рдХрд┐ рдПрдХ рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдЯреЗрдВрд╢рди рдЧреИрдк рд╣реИред

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


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

рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдЕрд╡рд▓реЛрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ NDJSON рдкрдВрдХреНрддрд┐, рдЗрд╕ рддрд░рд╣ рдЖрдХрд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛:

json Copy
{
  "company": "target_company_a",
  "source": "company_careers",
  "region": "US",
  "posting_id": "a1b2c3d4e5f60718",
  "role_title": "рд╕реАрдирд┐рдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрдВрдЬреАрдирд┐рдпрд░",
  "function": "рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ",
  "seniority": "рд╕реАрдирд┐рдпрд░",
  "location": "рдСрд╕реНрдЯрд┐рди, TX",
  "posted_date": "<ISO рджрд┐рдирд╛рдВрдХ рдЬреЛ рд╕реНрд░реЛрдд рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдирд▓>",
  "salary_band": "$180kтАУ$220k",
  "captured_at": "<ISO-8601 UTC рдЯрд╛рдЗрдорд╕реНрдЯреИрдВрдк рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдЬрдм рдкрдврд╝рд╛ рдЧрдпрд╛>"
}

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

  • рд╕рддреНрд░ рдХреЛ рдЧрд░реНрдо рдХрд░рдирд╛ рд╣реА рдЧреНрд░рд┐рдб рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдПрдХ рд▓рдХреНрд╖рд┐рдд рдЦреЛрдЬ URL рдардВрдбрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рдЕрдХреНрд╕рд░ рдПрдХ рдЖрдзрд╛-рдкреЛрд╖рд┐рдд рд╢реЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ; рдкрд╣рд▓реЗ рдЙрд╕реА рд╕рддреНрд░ рдореЗрдВ рд╣реЛрдордкреЗрдЬ рд▓реЛрдб рдХрд░рдирд╛, рдлрд┐рд░ рдЦреЛрдЬ рдкреГрд╖реНрда, рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреЗрдВрдЯреЗрдб рдХрд╛рд░реНрдб рдЧреНрд░рд┐рдб рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • рд░реЗрдВрдбрд░ рдХрд╛ рд╕рдордп рдЪрдпрдирдХрд░реНрддрд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдПрдХ рдЪрдпрдирдХрд░реНрддрд╛ рдЬреЛ networkidle рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддрд╛ рд╣реИ, рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдЯреЗрдирд░ рдкрд░ wait_for_selector рд╡рд╣ рдЧреЗрдЯ рд╣реИ рдЬреЛ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рдгреАрдп рдмрдирд╛рддрд╛ рд╣реИред
  • posting_id рд╕реНрдерд┐рд░рддрд╛ рд▓реЛрдб-рдмреЗрдпрд░рд┐рдВрдЧ рдлрд╝реАрд▓реНрдб рд╣реИред рдЬрдм рдХреЛрдИ рд╕реНрд░реЛрдд рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЖрдИрдбреА рдЦреЛрд▓рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рдЬрдм рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╢реАрд░реНрд╖рдХ-рдкреНрд▓рд╕-рд╕реНрдерд╛рди рд╣реИрд╢ рд╡рд╣ рд╣реИ рдЬреЛ рдкреБрдирдГ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рднреВрдорд┐рдХрд╛ рдХреЛ рдЪрд▓рди рдХреЗ рдмреАрдЪ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдмреИрдХрдлрд┐рд▓ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдкреЛрд╕реНрдЯрд┐рдВрдЧ рддрд┐рдерд┐рдпрд╛рдВ рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдмреАрдЪ рдЕрд╕рдВрдЧрдд рд╣реИрдВред рдХреБрдЫ рдЖрдИрд╕реЛ datetime рд╡рд┐рд╢реЗрд╖рддрд╛, рдХреБрдЫ рд╕рдВрдмрдВрдзреА рд╕реНрдЯреНрд░рд┐рдВрдЧ ("3 рджрд┐рди рдкрд╣рд▓реЗ"), рдХреБрдЫ рдХреБрдЫ рдирд╣реАрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЬреЛ рдкреГрд╖реНрда рдЖрдкрдХреЛ рджреЗрддрд╛ рд╣реИ, рдЙрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ рдФрд░ рдЧреЛрджрд╛рдо рдкрд░рдд рдореЗрдВ рд╕рд╛рдкреЗрдХреНрд╖ рддрд╛рд░реЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдВред
  • рд╕реНрдХреАрдорд╛ рдХреЛ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рд░рдЦреЗрдВред рдкреНрд░рддрд┐-рд╕реНрд░реЛрдд DOM рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ; рдкреЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдХреАрдорд╛ рдирд╣реАрдВ - рдФрд░ рдпрд╣ рдирд┐рд░реНрдорд╛рдг рджреНрд╡рд╛рд░рд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдХреЛ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдзрдХреЗрд▓реЗрдВ; рд╕реНрдХреАрдорд╛ рдХреЛ рд╕рдкрд╛рдЯ рдФрд░ PII-рдореБрдХреНрдд рд░рдЦреЗрдВред

рдЕрдиреБрдкрд╛рд▓рди: рдпрд╣ рдПрдХ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╣реИ, рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдирд╣реАрдВ

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

  • рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреАрдорд╛ рдореЗрдВ рдХрдВрдкрдиреА, рднреВрдорд┐рдХрд╛ рд╢реАрд░реНрд╖рдХ, рдХрд╛рд░реНрдп, рд╡рд░рд┐рд╖реНрдарддрд╛ рдмреИрдВрдб, рд╕реНрдерд╛рди, рдкреЛрд╕реНрдЯрд┐рдВрдЧ рддрд┐рдерд┐, рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрддрди рд░реЗрдВрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдирд╛рдо, рдИрдореЗрд▓ рдкрддреЗ, рдлреЛрди рдирдВрдмрд░, рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░реЛрдлрд╛рдЗрд▓, рдпрд╛ рдХрд┐рд╕реА рдХреА рд░реЛрдЬрдЧрд╛рд░ рдЗрддрд┐рд╣рд╛рд╕ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдЧреЛрджрд╛рдо рдореЗрдВ рд▓реАрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
  • рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рдПрдХрд╛рдИ рдХрдВрдкрдиреА рдФрд░ рднреВрдорд┐рдХрд╛ рд╣реИ, рдХрднреА рднреА рд╡реНрдпрдХреНрддрд┐ рдирд╣реАрдВред "рдЕрдЯреНрд░рд┐рд╢рди рд╕рд┐рдЧреНрдирд▓" рдпрд╣рд╛рдВ рдПрдХ рднреВрдорд┐рдХрд╛-рд╕реНрддрд░реАрдп рдмреИрдХрдлрд┐рд▓ рдкреИрдЯрд░реНрди рдХрд╛ рдЕрд░реНрде рд╣реИ - рдПрдХ рд╣реА рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрдирд╛ - рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдиреМрдХрд░реА рдЫреЛрдбрд╝рдиреЗ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдирд╣реАрдВред "рд╣рд╛рдпрд░рд┐рдВрдЧ рд╡реЗрд▓реЙрд╕рд┐рдЯреА" рд╕рдордп рдХреЗ рд╕рд╛рде рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ reqs рдХреА рдЧрд┐рдирддреА рд╣реИ, рди рдХрд┐ рдПрдХ рд╕реВрдЪреАред
  • рдХрд╛рдиреВрдиреА рдЖрдзрд╛рд░ рдФрд░ рдХреНрд╖реЗрддреНрд░реАрдп рдХрд╛рдиреВрдиред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдПрдЧреНрд░реАрдЧреЗрдЯ, рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рднрд░реНрддреА рдбреЗрдЯрд╛ рдЖрдорддреМрд░ рдкрд░ рд╕рдмрд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди GDPR, CCPA рдФрд░ рд╕рдорд╛рди рдХрд╛рдиреВрди рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рд░рдЦрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХрд╛рдиреВрдиреА рдЖрдзрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реЛ; рдХрд┐рд╕реА рднреА рджрд╛рдпрд░реЗ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╡рдХреАрд▓ рд╕реЗ рдХрд╛рдиреВрдиреА рдЖрдзрд╛рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред
  • рд╕рд╛рдЗрдЯ рдХреА рд╢рд░реНрддреЛрдВ рдФрд░ рд░реЛрдмреЛрдЯ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ HTML рдЦреЛрдЬ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рдЬреЛ рдПрдХ рд╕рд╛рдЗрдЯ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреА рд╣реИ; рдЖрдВрддрд░рд┐рдХ рдХреНрд╡реЗрд░реА рдЕрдВрдд рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рди рдХрд░реЗрдВ рдЬреЛ рдПрдХ рд╕рд╛рдЗрдЯ рдЕрдкрдиреЗ рд░реЛрдмреЛрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрд░рдХреНрд╖рд┐рдд рд░рдЦрддреА рд╣реИ, рдФрд░ рдХреНрд░реЙрд▓-рдбрд┐рд▓реЗ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВред
  • рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд┐рдпреЛрдХреНрддрд╛ рд╕рдореАрдХреНрд╖рд╛ рдбреЗрдЯрд╛ рдПрдЧреНрд░реАрдЧреЗрдЯ рд░рд╣рддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рд╕рдореАрдХреНрд╖рд╛ рд╕рд╛рдЗрдЯреЗрдВ рднрд╛рд╡рдирд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рддреА рд╣реИрдВ, рд╡рд┐рддрд░рдг-рд╕реНрддрд░реАрдп рд░реЗрдЯрд┐рдВрдЧ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ тАФ рдХрднреА рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдореАрдХреНрд╖рдХ рдкрд╣рдЪрд╛рди рдпрд╛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдореАрдХреНрд╖рд╛ рдкрд╛рда рдирд╣реАрдВред

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


рдирд┐рд╖реНрдХрд░реНрд╖: рдЕрдкрдиреЗ рдкреНрд░рддрд┐рднрд╛ рдмрд╛рдЬрд╛рд░ рдЦреБрдлрд┐рдпрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ

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

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


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

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

app.scrapeless.com рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдореБрдлреНрдд рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдХреЛ рдЙрди рдХрдВрдкрдирд┐рдпреЛрдВ, рднрд░реНрддреА рд╕рддрд╣реЛрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ рдЬрд┐рдирдХреА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рд╡рд┐рд╡рд░рдг scrapeless.com/en/pricing рдкрд░; рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрддреНрдкрд╛рдж рдкреГрд╖реНрда scrapeless.com/en/product/scraping-browser рдкрд░ рд╣реИ; рдкреВрд░реНрдг рдХрдиреЗрдХреНрд╢рди рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рд╕рдВрджрд░реНрдн docs.scrapeless.com рдкрд░ред


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

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдкреНрд░рддрд┐рднрд╛ рдмрд╛рдЬрд╛рд░ рдЦреБрдлрд┐рдпрд╛ рд╕рдВрдЧреНрд░рд╣ рдХрд░рдирд╛ рдХрд╛рдиреВрдиреА рд╣реИ, рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛?

рдХрд╛рдиреВрдиреАрддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреГрд╖реНрдареЛрдВ рд╕реЗ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ, рднреВрдорд┐рдХрд╛-рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреА рд╣реИ тАФ рдиреМрдХрд░реА рдХреЗ рд╢реАрд░реНрд╖рдХ, рдХрд╛рд░реНрдп, рд╕реНрдерд╛рди, рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрддрди рд╕реАрдорд╛ тАФ рдФрд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ рдирд╣реАрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рддреА: рди рдирд╛рдо, рди рд╕рдВрдкрд░реНрдХ рд╡рд┐рд╡рд░рдг, рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реЛрдЬрдЧрд╛рд░ рдЗрддрд┐рд╣рд╛рд╕ред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рджреГрд╢реНрдп рдбреЗрдЯрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди GDPR, CCPA, рдФрд░ рд╕рдорд╛рди рдХрд╛рдиреВрди рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рдЗрдЯ рдХреА рд╕реЗрд╡рд╛ рд╢рд░реНрддреЗрдВ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред рд╕реНрдХреАрдорд╛ рдХреЛ рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рдмрдирд╛рдП рд░рдЦрдирд╛ рд╡реЛ рд╣реИ рдЬреЛ рдХрд╛рдиреВрдиреА рдЖрдзрд╛рд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░рдЦрддрд╛ рд╣реИ; рджрд╛рдпрд░рд╛ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рдХреАрд▓ рд╕реЗ рдкрд░рд╛рдорд░реНрд╢ рдХрд░реЗрдВред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдореБрдЭреЗ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдХреМрди рд╕рд╛ рджреЗрд╢ рдкрд┐рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

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

рдкреНрд░рд╢реНрди: рдПрдХ рдЦреЛрдЬ рдкреГрд╖реНрда рдЦрд╛рд▓реА рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдПрдХ рдПрдХреНрд╕реЗрд╕ рдЪреБрдиреМрддреА рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ тАФ рдореБрдЭреЗ рд╕рд╛рдлрд╝ рдкреНрд░рд╕реНрддреБрддрдХрд░рдг рдХреИрд╕реЗ рдорд┐рд▓реЗ?

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

рдкреНрд░рд╢реНрди: рдЬрдм рдПрдХ рд╕реНрд░реЛрдд рдЕрдкрдирд╛ DOM рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
рдХреЗрд╡рд▓ рдЪрд░рдг 4 рдореЗрдВ рд╕реНрд░реЛрдд-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдмрджрд▓рддрд╛ рд╣реИред рдорд╛рдирдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рд╕реНрдХреАрдорд╛, рдЧреЛрджрд╛рдо рддрд╛рд▓рд┐рдХрд╛, рд╡реНрдпреБрддреНрдкрддреНрддрд┐ рдкреНрд░рд╢реНрди рдФрд░ рдЕрд▓рд░реНрдЯрд┐рдВрдЧ рдирд┐рдпрдо рд╕рднреА рдЕрдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВред рдЬрдм рдХреЛрдИ рд╕реНрд░реЛрдд рдПрдХ рд░рд┐рд▓реАрдЬрд╝ рднреЗрдЬрддрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рдХрд╕реЗрдВ; рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ data-* рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВ; рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рдХреЛ рдЕрд╕реНрдерд┐рд░ рдкрд░рдд рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╕реНрдХреАрдорд╛ рдХреЛ рд╕реНрдерд┐рд░ рдкрд░рдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВред

рдкреНрд░рд╢реНрди: рдореИрдВ рдмрд┐рдирд╛ рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдП рднрд░реНрддреА рдЧрддрд┐ рдФрд░ рдмреИрдХрдлрд┐рд▓ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ?

рджреЛрдиреЛрдВ рдореЗрдЯреНрд░рд┐рдХ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рддрд╛рд░реАрдЦреЛрдВ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ posting_id рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рди рдХрд┐ рд▓реЛрдЧреЛрдВ рд╕реЗред рдЧрддрд┐ рд╣рд░ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рд╣рд░ рдХрд╛рд░реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдордп рд╡рд┐рдВрдбреЛ рдкрд░ рдЦреЛрд▓реЗ рдЧрдП рд╡рд┐рднрд┐рдиреНрди рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЧрдгрдирд╛ рд╣реИред рдмреИрдХрдлрд┐рд▓ рджрдмрд╛рд╡ рд╡рд╣реА posting_id рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд░рди рдореЗрдВ рдПрдХ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред рдЧрдгрд┐рдд рдЧреЛрджрд╛рдо рдореЗрдВ (рдЪрд░рдг 7) рдлрд░реНрдореЛрдЧреНрд░рд╛рдлрд┐рдХ рдЕрд╡рд▓реЛрдХрдиреЛрдВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ - рдХрднреА рднреА рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреА рдкрд╣рдЪрд╛рди рдпрд╛ рдЯреНрд░реИрдХ рдирд╣реАрдВ рдХреА рдЬрд╛рддреАред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдореИрдВ рдХрдИ рдХрдВрдкрдирд┐рдпреЛрдВ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдБ?

рд╣рд╛рдВред рдкреНрд░рддреНрдпреЗрдХ (рдХрдВрдкрдиреА, рд╕реНрд░реЛрдд, рдХреНрд╖реЗрддреНрд░) рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рддреНрд░ рдХреЛ рдЧрд░реНрдо рдХрд░рддреА рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рдереНрд░реЗрдб рдкреВрд▓ рдореЗрдВ рдлреИрд▓рд╛ рджреЗрддрд╛ рд╣реИред рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯ рдкрд░ рддреАрди рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдлреИрд▓рд╛рд╡ рд╡рд┐рдирдореНрд░ рдмрдирд╛ рд░рд╣реЗ; рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдХреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рддреНрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВред

рдкреНрд░рд╢реНрди: рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

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

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

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

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