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

рд╕рд╛рдЗрдЯрдореИрдк рд╕реЗ рддреИрдпрд╛рд░ рд▓рд┐рдВрдХ рддрдХ: рдкреВрд░реНрдг-рд╕рд╛рдЗрдЯ URL рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП 6-рд╕рдореВрд╣ рд╡рд┐рдзрд┐

Ava Wilson
Ava Wilson

Expert in Web Scraping Technologies

03-Jun-2026

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

  • рдХреЛрдИ рдПрдХрд▓ рдЖрджреЗрд╢ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рд░ рдкреГрд╖реНрда рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗред рдПрдХ рдкреВрд░реНрдг URL рд╕реВрдЪреА рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЖрддреА рд╣реИ: рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП site: рдЦреЛрдЬ рдСрдкрд░реЗрдЯрд░, рдЬреЛ рд╕рд╛рдЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреА рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП sitemap.xml рдФрд░ рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕, рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП robots.txt рд╕рд╛рдЗрдЯрдореИрдк рдирд┐рд░реНрджреЗрд╢, рдЬреЛ рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ SEO рдХреНрд░реЙрд▓рд░ рдпрд╛ рдПрдХ рдкрд╛рдпрдерди рдХреНрд░реЙрд▓рд░, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рдХреЗрд╡рд▓ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рддреА рд╣реИред
  • рд╕рд╛рдЗрдЯрдореИрдк рд╕рдмрд╕реЗ рддреЗрдЬ рдкреНрд░рд╛рдзрд┐рдХреГрдд рд╕реНрд░реЛрдд рд╣реИрдВ тАФ рдЬрдм рд╡реЗ рдореМрдЬреВрдж рд╣реЛрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рд░рд╣реЗрдВред рдПрдХ рд╕рд┐рдВрдЧрд▓ requests.get("/sitemap.xml") рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрдд рдпрд╛рддреНрд░рд╛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ URLs рд▓реМрдЯрд╛ рд╕рдХрддреА рд╣реИред
  • рдПрдХ рдЪреМрдбрд╝рд╛рдИ-рдкреНрд░рдердо рдХреНрд░реЙрд▓рд░ рд╡рд╣ рдЦреЛрдЬрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдЗрдЯрдореИрдк рдЫреЛрдбрддрд╛ рд╣реИред рд╕рд╛рдЗрдЯрдореИрдк рд▓реЗрдЦрдХ-рдкреНрд░рднреВрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдкреБрд░рд╛рдиреЗ рд╣реЛрддреЗ рд╣реИрдВ; рдЖрдВрддрд░рд┐рдХ <a href> рд▓рд┐рдВрдХ рдХрд╛ BFS рдпрд╛рддреНрд░рд╛ рдЕрдирд╛рде рдкреГрд╖реНрдареЛрдВ, рдЧрд╣рд░реЗ рд▓рд┐рдВрдХ рд╡рд╛рд▓реЗ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЕрдиреНрдп рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдЦреЛрдЬрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдЗрдЯрдореИрдк рдиреЗ рднреБрд▓рд╛ рджрд┐рдпрд╛ред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдХреНрд░реЙрд▓рд░ рд╣рд░ URL рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ robots.txt Disallow рдирд┐рдпрдореЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИред
  • рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЬрдирд┐рдд рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдРрдкреНрд╕ рдФрд░ рдЕрдирдВрдд-рд╕реНрдХреНрд░реЙрд▓ рдХреИрдЯрд▓реЙрдЧ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп HTTP рдлрд╝реЗрдЪ рдПрдХ рд▓рдЧрднрдЧ рдЦрд╛рд▓реА рд╢реЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИред Scrapeless Scraping Browser рдкреГрд╖реНрда рдХреЛ рдПрдХ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рдЖрдк рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб DOM рд╕реЗ рдПрдВрдХрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ тАФ US рдЖрд╡рд╛рд╕реАрдп рдПрдЧреНрд░реЗрд╕ рдкрд░ рд╕рддреНрд░ рдЖрдпреЛрдЬрд┐рдд рдХрд░рддреЗ рд╣реБрдПред
  • рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ред рдирдП Scrapeless рдЦрд╛рддреЗ рдореБрдлреНрдд Scraping Browser рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ тАФ app.scrapeless.com рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВред

рдкрд░рд┐рдЪрдп: рдХреНрдпреЛрдВ рдкреВрд░реНрдг URL рд╕реВрдЪреА рдмрдирд╛рдирд╛ рдЙрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИ

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

рдореМрдЬреВрджрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдХрддрд░рди рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВред Google site: рдСрдкрд░реЗрдЯрд░ рдПрдХ рддреЗрдЬ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрдиреБрдорд╛рди рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдЪреАрдЬреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИрдВред рдПрдХ sitemap.xml рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХреГрдд рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рдХрд╛рд╢рдХ рдиреЗ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЫреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ CMS рдиреЗ рдХрднреА рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдПрдХ рдХреНрд░реЙрд▓рд░ рдЬреЛ рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ рд▓рд┐рдВрдХ рдЧреНрд░рд╛рдл рдХреЛ рдЦреЛрдЬрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдзрд╛рд░рдг HTTP рдХреНрд░реЙрд▓рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рднрд╛рд░реА рдкреГрд╖реНрдареЛрдВ рдкрд░ рдПрдХ рдЦрд╛рд▓реА рд╢реЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдЧрд╛рдЗрдб рдЫрдГ рддрд░реАрдХреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рддрд╛ рд╣реИ рд▓рд╛рдЧрдд рдФрд░ рдкреВрд░реНрдгрддрд╛ рдХреЗ рдХреНрд░рдо рдореЗрдВ тАФ рдкрд╣рд▓реЗ рд╕рд╕реНрддреЗ рдФрд░ рддреЗрдЬ, рдФрд░ рдЕрдВрдд рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдФрд░ рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдкрд╛рдпрдерди рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд┐рд░ рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП requests рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП Scrapeless Scraping Browser рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░, рддрд╛рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдВред US рдПрдЧреНрд░реЗрд╕ рдХреЛ рдкрд┐рди рдХрд░реЗрдВ, рдкреГрд╖реНрда рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ, рдПрдВрдХрд░ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред рд╕рд╣рд╛рдпрдХ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рд▓рд┐рдВрдХ рдЕрдВрдд рдореЗрдВ рд╣реИрдВред


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

  • рддрдХрдиреАрдХреА SEO рдСрдбрд┐рдЯред рд╣рд░ рдЕрдиреБрдХреНрд░рдордгреАрдп URL рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рд╛рдЗрдЯрдореИрдк рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрд░реЙрд▓ рдХрд╛ рдЕрдВрддрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЕрдирд╛рде рдкреГрд╖реНрдареЛрдВ рдФрд░ рд╕рд╛рдЗрдЯрдореИрдк рджреНрд╡рд╛рд░рд╛ рднреБрд▓рд╛рдП рдЧрдП рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕рддрд╣ рдкрд░ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
  • рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╡рд╛рд╕ред рдПрдХ рдкреБрдирд░-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реНрдг рд╕реНрд░реЛрдд-URL рд╕реВрдЪреА рдмрдирд╛рдПрдВ рддрд╛рдХрд┐ рдХрдЯрдУрд╡рд░ рдХреЗ рдмрд╛рдж рдХреБрдЫ рднреА 404 рди рд╣реЛ, рдФрд░ рдкреБрд░рд╛рдиреА рдкрдереЛрдВ рдХреЛ рдирдП рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдорд╛рдирдЪрд┐рддреНрд░рд┐рдд рдХрд░реЗрдВред
  • рдЯреВрдЯреА рд▓рд┐рдВрдХ рд╕реНрд╡реАрдкред рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдЧреНрд░рд╛рдл рдкрд░ рдЪрд▓реЗрдВ, рд╣рд░ рдЧрдВрддрд╡реНрдп рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЧреИрд░-200 рд╕реНрдерд┐рддрд┐ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред
  • рдореВрд▓реНрдп рдФрд░ рдХреИрдЯрд▓реЙрдЧ рдирд┐рдЧрд░рд╛рдиреАред рдПрдХ рдЦреБрджрд░рд╛ рд╡рд┐рдХреНрд░реЗрддрд╛ рдкрд░ рд╣рд░ рдЙрддреНрдкрд╛рдж URL рдЦреЛрдЬреЗрдВ тАФ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЬрдирд┐рдд рд▓реЛрдЧреЛрдВ рд╕рд╣рд┐рдд тАФ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдирд┐рд╖реНрдХрд░реНрд╖рдг рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЦрд┐рд▓рд╛рдПрдВред
  • LLM рдХреЙрд░реНрдкрд╕ рднрдХреНрд╖рдгред рдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА URLs рдХрд╛ рдПрдХ рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдПрдХ рдкрд╛рда-рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХрд╛рд░реНрдп рдкреВрд░реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреЙрд░реНрдкрд╕ рдХреЛ рдмрд┐рдирд╛ рдЧрд╣рд░реЗ рд▓рд┐рдВрдХ рд╡рд╛рд▓реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЦреАрдВрдЪ рд╕рдХреЗред
  • рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╕рд╛рдордЧреНрд░реА рдорд╛рдирдЪрд┐рддреНрд░рдгред рдкреНрд░рддрд┐рдпреЛрдЧреА рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЕрдиреБрднрд╛рдЧ рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕реВрдЪреА рдмрдирд╛рдПрдВ рд╕рд╛рдЗрдЯрдореИрдк рдФрд░ рд▓рд┐рдВрдХ рдЧреНрд░рд╛рдл рд╕реЗ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкрджрдЪрд┐рд╣реНрди рдХреЛ рдЖрдХрд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред

рдХреНрдпреЛрдВ Scrapeless Scraping Browser

рдЗрд╕ рдЧрд╛рдЗрдб рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдкрд╛рдпрдерди рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ requests рдкрд░ рдЪрд▓рддрд╛ рд╣реИ тАФ рд╕рд╛рдЗрдЯрдореИрдк рдФрд░ robots.txt рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рда рдФрд░ XML рд╣реИрдВ, рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХ рдХреНрд░реЙрд▓рд░ рдХреЛ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред Scrapeless Scraping Browser рдПрдХ рдЕрдиреБрдХреВрд▓рдирд╢реАрд▓, рдПрдВрдЯреА-рдбрд┐рдЯреЗрдХреНрд╢рди рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИ рдЬреЛ рд╡реЗрдм рдХреНрд░реЙрд▓рд░реЛрдВ рдФрд░ AI рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рдпрд╣ рд╡рд╣ рд╕реНрддрд░ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рддрдм рддрдХ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд▓рд┐рдВрдХ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг-рд╕рд╛рдЗрдЯ URL рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд▓рд╛рддрд╛ рд╣реИ:

  • рдХреНрд▓рд╛рдЙрдб-рд╕рд╛рдЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрдВрдбрд░рд┐рдВрдЧ, рддрд╛рдХрд┐ рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдРрдк, рдЕрдирдВрдд-рд╕реНрдХреНрд░реЙрд▓ рдХреИрдЯрд▓реЙрдЧ, рдпрд╛ React/Vue/Next.js рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкрд░ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдЙрд╕ DOM рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ тАФ рди рдХрд┐ рдПрдХ рдЦрд╛рд▓реА <div id="root"> рдХреЗ рд░реВрдк рдореЗрдВред
  • US рдЖрд╡рд╛рд╕реАрдп рдкреНрд░реЙрдХреНрд╕реА рдПрдЧреНрд░реЗрд╕, рд╕рддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд┐рди рдХрд┐рдпрд╛ рдЧрдпрд╛, рддрд╛рдХрд┐ рднреВ-рдЧреЗрдЯреЗрдб рд╕рд╛рдЗрдЯреЗрдВ рд╡рд╣реА рдкреГрд╖реНрда рд╕рдВрд░рдЪрдирд╛ рд╕рд░реНрд╡ рдХрд░реЗрдВ рдЬреЛ рд╡реЗ рдПрдХ US рдЖрдЧрдВрддреБрдХ рдХреЛ рд╕реЗрд╡рд╛ рджреЗрддреА рд╣реИрдВред
  • рдПрдВрдЯреА-рдбрд┐рдЯреЗрдХреНрд╢рди рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯрд┐рдВрдЧ рд╣рд░ рд╕рддреНрд░ рдореЗрдВ, рддрд╛рдХрд┐ рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреГрд╖реНрда рдЙрд╕ рдЪреАрдЬрд╝ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ рдЬреЛ рдЬреИрд╡рд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рджреЗрдЦрддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдПрдХ рдЭрдВрдбрд╛ рд▓рдЧрд╛рдП рдЧрдП рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗред
  • рд╕рддреНрд░ рдирд┐рд░рдВрддрд░рддрд╛ рдПрдХ рд╡рд╛рд░реНрдо-рдЕрдк рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рд▓рдХреНрд╖реНрдп рдкреГрд╖реНрда рдХреЗ рдмреАрдЪ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реЛрдордкреЗрдЬ рд╡рд┐рдЬрд╝рд┐рдЯ рдЬреЛ рдХреБрдХреАрдЬрд╝ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЙрд╕ рдкреГрд╖реНрда рдкрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рдПрдХ рдПрдВрдбрдкреЙрдЗрдВрдЯ, рдорд╛рдирдХ CDP, рдЗрд╕рд▓рд┐рдП рдкреНрд▓реЗ рд░рд╛рдЗрдЯ (рдпрд╛ рдХреЛрдИ рднреА рдХреНрд░реЛрдо рдбреЗрд╡ рдЯреВрд▓реНрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ) рд╡реЗрдм-рд╕реЙрдХреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдерд╛рдиреАрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЬреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред

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


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

  • рдкрд╛рдпрдерди 3.10 рдпрд╛ рдирдпрд╛ред
  • рдПрдХ Scrapeless рдЦрд╛рддрд╛ рдФрд░ API рдХреБрдВрдЬреА тАФ app.scrapeless.com рдкрд░ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВред
  • pip install requests playwright рдФрд░ playwright install chromium (рд╕реНрдерд╛рдиреАрдп рдХреНрд░реЛрдорд┐рдпрдо рдХреЗрд╡рд▓ CDP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ; рд░реЗрдВрдбрд░рд┐рдВрдЧ Scrapeless рдХреЗ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рд╣реЛрддреА рд╣реИ)ред
  • рдЯрд░реНрдорд┐рдирд▓ рдФрд░ HTTP рдХреА рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реАред

рд╡рд┐рдзрд┐ 1 тАФ Google site: рдЦреЛрдЬ рдСрдкрд░реЗрдЯрд░

рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкрд╣рд▓рд╛ рдЕрдиреБрдорд╛рди рдХрд┐рд╕реА рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ Google рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ:

Copy
site:example.com

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

  • site:example.com/blog тАФ рдХреЗрд╡рд▓ /blog рдХреЗ рддрд╣рдд URLред
  • site:example.com inurl:product тАФ рдЕрдиреБрдХреНрд░рдорд┐рдд URL рдЬрд┐рдирдХрд╛ рдкрде product рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред
  • site:example.com -inurl:tag тАФ рдПрдХ рдкрде рдЦрдВрдб рдХреЛ рдЫреЛрдбрд╝реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рд╡рд┐рдзрд┐ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рд╣реИ: рд╕рд╛рдЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдХреМрди рд╕реЗ рдЕрдиреБрднрд╛рдЧ рдореМрдЬреВрдж рд╣реИрдВ рдЙрд╕рдХрд╛ рддреАрд╕ рд╕реЗрдХрдВрдб рдХрд╛ рдЕрдиреБрднрд╡ред рдпрд╣ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рд╣реИ: рдкреВрд░реНрдгрддрд╛ред site: рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ Google рдиреЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдЕрдиреБрдорд╛рди рд╣реИ рди рдХрд┐ рдПрдХ рд╕рдЯреАрдХ рдЖрдВрдХрдбрд╝рд╛, рдФрд░ рдСрдкрд░реЗрдЯрд░ рдпрд╣ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рддрдиреЗ рдкрд░рд┐рдгрд╛рдо рдкреГрд╖реНрда рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдиреАрдЪреЗ рджреА рдЧрдИ рдЕрдзрд┐рдХ рдЧрд╣рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рд╕рдВрддреБрд▓рди рдЬрд╛рдВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВ тАФ рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд╛рдЗрдЯрдореИрдк 5,000 URL рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ site: рд▓рдЧрднрдЧ 200 рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЕрдВрддрд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЦреЛрдЬ рд╣реИред


рд╡рд┐рдзрд┐ 2 тАФ sitemap.xml рдФрд░ рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ

рдПрдХ рд╕рд╛рдЗрдЯрдореИрдк рдкреНрд░рдХрд╛рд╢рдХ рдХреЗ рдЕрдкрдиреЗ URL рдХреА рдШреЛрд╖рдгрд╛ рд╣реИ, рдЬрд┐рд╕реЗ XML рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдкрде рдкрд░ /sitemap.xml рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдпрд╣ рдореМрдЬреВрдж рд╣реЛ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╣реЛ, рддреЛ рдпрд╣ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рдкреНрд░рд╛рдзрд┐рдХреГрдд рд╕реНрд░реЛрдд рд╣реИред рджреЛ рд░реВрдк рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:

  • рдПрдХ <urlset> рд╕рд╛рдЗрдЯрдореИрдк рдкреГрд╖реНрда URL рд╕реАрдзреЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ <url><loc>тАж</loc></url>ред
  • рдПрдХ <sitemapindex> рдЕрдиреНрдп рд╕рд╛рдЗрдЯрдореИрдкреНрд╕ рдХреА рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ тАФ рдмрдбрд╝реЗ рд╕рд╛рдЗрдЯ рдЕрдкрдиреЗ URL рдХреЛ рдмрдЪреНрдЪреЗ рдлрд╝рд╛рдЗрд▓реЛрдВ (pages_sitemap.xml, blog_sitemap.xml, рдЖрджрд┐) рдХреЗ рдмреАрдЪ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рдЙрди рдкрд░ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЪрд▓рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

рдпрд╣ requests рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХрд▓ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рд░реВрдкреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреА рд╣реИред рдпрд╣ рдореВрд▓ рдЯреИрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреА рд╣реИ, рдПрдХ рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ <urlset> рд╕реЗ рдкреГрд╖реНрда URL рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИ:

python Copy
import requests
import xml.etree.ElementTree as ET
from urllib.parse import urljoin

SM_NS = "{http://www.sitemaps.org/schemas/sitemap/0.9}"
HEADERS = {"User-Agent": "Mozilla/5.0 (sitemap-discovery)"}

def walk_sitemap(url, seen=None):
    """рдПрдХ рд╕рд╛рдЗрдЯрдореИрдк рдпрд╛ рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рд╕реЗ рд╣рд░ рдкреГрд╖реНрда URL рд▓реМрдЯрд╛рдПрдВред"""
    seen = seen if seen is not None else set()
    if url in seen:          # рдПрдХ рд╕рд╛рдЗрдЯрдореИрдк рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬреЛ рдЦреБрдж рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ
        return []
    seen.add(url)

    resp = requests.get(url, headers=HEADERS, timeout=30)
    resp.raise_for_status()
    root = ET.fromstring(resp.content)
    tag = root.tag.split("}")[-1]   # рдЙрдкрдиреНрдпрд╛рд╕ рд╕реНрдерд╛рди рдХреЛ рд╕реНрдЯреНрд░рд┐рдк рдХрд░реЗрдВ, "sitemapindex" рдпрд╛ "urlset" рд░рдЦреЗрдВ

    urls = []
    if tag == "sitemapindex":
        # рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдмрдЪреНрдЪреЗ рд╕рд╛рдЗрдЯрдореИрдк рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ тАФ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реЗрдВред
        for sm in root.findall(f"{SM_NS}sitemap"):
            loc = sm.findtext(f"{SM_NS}loc")
            if loc:
                urls.extend(walk_sitemap(loc.strip(), seen))
    else:
        # рдПрдХ urlset рд╕реАрдзреЗ рдкреГрд╖реНрда URL рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИред
        for u in root.findall(f"{SM_NS}url"):
            loc = u.findtext(f"{SM_NS}loc")
            if loc:
                urls.append(loc.strip())
    return urls

if __name__ == "__main__":
    pages = walk_sitemap("https://example.com/sitemap.xml")
    print(f"рд╕рд╛рдЗрдЯрдореИрдк рдкреЗрдбрд╝ рд╕реЗ {len(pages):,} URLs рдХреА рдЦреЛрдЬ рдХреА рдЧрдИ")
    for u in pages[:10]:
        print(" ", u)

рдПрдХ рдРрд╕реА рд╕рд╛рдЗрдЯ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЪрд▓рд╛рдиреЗ рдкрд░ рдЬрд┐рд╕рдХрд╛ /sitemap.xml рдПрдХ рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ рдЬреЛ рдмрдЪреНрдЪреЗ рд╕рд╛рдЗрдЯрдореИрдк рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ, рдкреБрдирд░рд╛рд╡реГрддреНрдд рдЪрд▓рд╛рди рд╣рд░ рдмрдЪреНрдЪреЗ рд╕рд╛рдЗрдЯрдореИрдк рдХрд╛ рд╕рдВрдШ рдПрдХрд▓ рдкрд╛рд╕ рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЬрдВрдЧрд▓реА рдореЗрдВ рд╕рд╛рдЗрдЯрдореИрдк рдкрд░ рдХреБрдЫ рдиреЛрдЯреНрд╕:

  • рдкрде рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХрддрд╛ рд╣реИ, рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВред /sitemap.xml рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдЗрдЯ рдЗрд╕реЗ рдХреБрдЫ рднреА рдирд╛рдо рджреЗ рд╕рдХрддреА рд╣реИ рдФрд░ robots.txt рдореЗрдВ рдЕрд╕рд▓реА рдкрде рдХреА рдШреЛрд╖рдгрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ (рд╡рд┐рдзрд┐ 3)ред рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрд╢рд╛ robots.txt рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
  • рд╕рдВрдкреАрдбрд╝рд┐рдд рд╕рд╛рдЗрдЯрдореИрдк рдореМрдЬреВрдж рд╣реИрдВред рдХреБрдЫ рд╕рд╛рдЗрдЯреЗрдВ sitemap.xml.gz рдкрд░реЛрд╕рддреА рд╣реИрдВ; requests рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ .gz рд╢рд░реАрд░ рдХреЛ рдбрд┐рдХрдВрдкреНрд░реЗрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкрд░ рд╣рд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ gzip рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбрд┐рдХрдВрдкреНрд░реЗрд╕ рдХрд░реЗрдВред
  • рд╕рд╛рдЗрдЯрдореИрдк рдмрд╛рд╕реА рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпреЗ рдЙрд╕ рд╕рдордп рдХрд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдм рд╣реИрдВ рдЬрдм CMS рдиреЗ рдкрдВрдЬреАрдХрд░рдг рдХрд┐рдпрд╛ рдерд╛ред рдЖрдЦрд┐рд░реА рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗ рдЧрдП рдкреГрд╖реНрда рдФрд░ рдЕрдирд╛рде рдкреГрд╖реНрда рдЬреЛ CMS рдиреЗ рдХрднреА рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рд╣реЛрдЧрд╛ тАУ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐рдпрд╛рдБ 5 рдФрд░ 6 рдореМрдЬреВрдж рд╣реИрдВред

рд╡рд┐рдзрд┐ 3 тАФ robots.txt рд╕рд╛рдЗрдЯрдореИрдк рдирд┐рд░реНрджреЗрд╢ рдкрдврд╝реЗрдВ

рдХреБрдЫ рднреА рдХреНрд░реЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, /robots.txt рд▓рд╛рдПрдБред рдпрд╣ URL рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рджреЛ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреА рдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдЕрдХреНрд╕рд░ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Sitemap: рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯрдореИрдк рд╕реНрдерд╛рдиреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдХреНрд░реЙрд╡рд▓рд░реНрд╕ рд╕реЗ рдХреМрди рд╕реЗ рдкрдереЛрдВ рдХреЛ рдЕрдХреЗрд▓рд╛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреА рд╣реИ (Disallow:)ред рджреЛрдиреЛрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ тАФ рдкрд╣рд▓рд╛ рд╡рд┐рдзрд┐ 2 рдХреЛ рдлреАрдб рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдПрдХ рдЕрдиреБрдкрд╛рд▓рди рджрд╛рдпрд┐рддреНрд╡ рд╣реИ рдЬреЛ рдЖрдк рд╡рд┐рдзрд┐ 5 рдореЗрдВ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред

python Copy
import requests
from urllib.parse import urljoin

HEADERS = {"User-Agent": "Mozilla/5.0 (sitemap-discovery)"}

def sitemaps_from_robots(base_url):
    """robots.txt рдореЗрдВ рдШреЛрд╖рд┐рдд рд╣рд░ Sitemap: рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВред"""
    resp = requests.get(urljoin(base_url, "/robots.txt"), headers=HEADERS, timeout=30)
    resp.raise_for_status()
    sitemaps = []
    for line in resp.text.splitlines():
        if line.lower().startswith("sitemap:"):
            sitemaps.append(line.split(":", 1)[1].strip())
    return sitemaps

if __name__ == "__main__":
    for sm in sitemaps_from_robots("https://example.com"):
        print("рдШреЛрд╖рд┐рдд рд╕рд╛рдЗрдЯрдореИрдк:", sm)

рдПрдХ рд╕рд╛рдЗрдЯ рдХрд╛ robots.txt рдЕрдХреНрд╕рд░ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ Sitemap: рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ тАФ рдЬреИрд╕реЗ Sitemap: https://example.com/sitemap.xmlред рдЙрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рд╡рд┐рдзрд┐ 2 рд╕реЗ walk_sitemap рдореЗрдВ рдлреАрдб рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рдХрд╛рд╢рдХ рдХрд╛ рдкреВрд░реНрдг рдШреЛрд╖рд┐рдд URL рд╕реЗрдЯ рд╣реЛрдЧрд╛ рдмрд┐рдирд╛ рдкрде рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПред

рд╕рдВрдпреБрдХреНрдд рдкреИрдЯрд░реНрди рд╕реНрдерд┐рд░ рдЦреЛрдЬ рдХрд╛ рдореВрд▓ рд╣реИ: рд╕рд╛рдЗрдЯрдореИрдк(s) рдФрд░ рдЕрдиреБрдкрд╛рд▓рдирд╛ рдкрдереЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП robots.txt рдкрдврд╝реЗрдВ, рдлрд┐рд░ рд╣рд░ рдШреЛрд╖рд┐рдд рд╕рд╛рдЗрдЯрдореИрдк рдкрд░ рдЪрд▓реЗрдВред рдЬреЛ рднреА рдпреЗ рджреЛрдиреЛрдВ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рд╡реЛ рдЖрдкрдХреА рдкреНрд░рд╛рдзрд┐рдХрд╛рд░рд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реВрдЪреА рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬреЛ рд╡реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

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


рд╡рд┐рдзрд┐ 4 тАФ SEO рдХреНрд░реЙрд▓рд░реНрд╕ (рдХреЛрдИ рдХреЛрдб рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ)

рдпрджрд┐ рдЖрдк Python рдХреЛ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдпрд╛ рдмрд╛рджрд▓ SEO рдХреНрд░реЙрд▓рд░ рдЦреЛрдЬ, рд▓рд┐рдВрдХ-рдЧреНрд░рд╛рдл рдорд╛рдирдЪрд┐рддреНрд░рдг, рдФрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдПрдХ рдЙрдкрдХрд░рдг рдореЗрдВ рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░реЙрд▓рд░реНрд╕ тАФ Screaming Frog SEO Spider, Sitebulb, рдФрд░ Ahrefs рдФрд░ Semrush рдореЗрдВ рдмрдирд╛рдП рдЧрдП рд╕рд╛рдЗрдЯ-рдСрдбрд┐рдЯ рдХреНрд░реЙрд▓рд░реНрд╕ тАФ рд╕рднреА рд╡рд╣реА рдореБрдЦреНрдп рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: рдПрдХ рдкреНрд░рд╛рд░рдВрдн URL рд╕реАрдб рдХрд░реЗрдВ, рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХреЛ рдЪреМрдбрд╝рд╛рдИ-рдкреНрд░рдердо рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ, рдФрд░ рд╣рд░ URL рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ рдЬреЛ рд╕реНрдерд┐рддрд┐ рдХреЛрдб, рд╢реАрд░реНрд╖рдХ, рдЧрд╣рд░рд╛рдИ, рдФрд░ рдЗрдирдмрд╛рдЙрдВрдб рд▓рд┐рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗ рдЧрдП рд╣реИрдВред

рдпреЗ рдЙрдкрдХрд░рдг рдЙрди рд╕рдордпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬрдм:

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

рдЙрдирдХреА рд╕реАрдорд╛рдПрдВ рдЬрд╛рдирдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВ: рдореБрдлреНрдд рд╕реНрддрд░ URL рдЧрд┐рдирддреА рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреЗ рд╣реИрдВ (Screaming Frog рдХрд╛ рдореБрдлреНрдд рд╕рдВрд╕реНрдХрд░рдг 500 URLs рдкрд░ рд░реБрдХ рдЬрд╛рддрд╛ рд╣реИ), JavaScript рд░реЗрдВрдбрд░рд┐рдВрдЧ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ, рдзреАрдореА рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд░ рд╕реНрддрд░ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рджрд▓ рдСрдбрд┐рдЯ рдЙрдкрдХрд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВред рдЫреЛрдЯреЗ рд╕рд╛рдЗрдЯ рдХреЗ рдПрдХ рдмрд╛рд░ рдХреЗ рдСрдбрд┐рдЯ рдХреЗ рд▓рд┐рдП рдпреЗ рдмреЗрд╣рддрд░реАрди рд╣реИрдВ; рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлреАрдб рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рдпреЛрдЧреНрдп рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП, рдиреАрдЪреЗ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рддрд░реАрдХреЗ рдЖрдкрдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ URLs рджреЗрддреЗ рд╣реИрдВред рдЕрдЧрд▓реА рджреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдорд╛рд░реНрдЧ рдХреА рд╣реИрдВред


рд╡рд┐рдзрд┐ 5 тАФ рдПрдХ Python BFS рдЖрдВрддрд░рд┐рдХ-рд▓рд┐рдВрдХ рдХреНрд░реЙрд▓рд░

рдЬрдм рд╕рд╛рдЗрдЯрдореИрдк рдмрд╛рд╕реА рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдЖрдк рдкреГрд╖реНрдареЛрдВ рдХреА рдЦреЛрдЬ рдЙрд╕реА рддрд░рд╣ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдПрдХ рд╕рд░реНрдЪ рдЗрдВрдЬрди: рд╣реЛрдо рдкреГрд╖реНрда рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рд╣рд░ рдЖрдВрддрд░рд┐рдХ <a href> рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ, рдРрд╕реЗ рд▓рд┐рдВрдХ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдЪреМрдбрд╝рд╛рдИ-рдкреНрд░рдердо рджреЛрд╣рд░рд╛рдПрдБ рдЬрдм рддрдХ рд╕реАрдорд╛ рдЦрд╛рд▓реА рди рд╣реЛ рдЬрд╛рдП рдпрд╛ рдЖрдк рдкреГрд╖реНрда рдХреА рд╕реАрдорд╛ рди рдЫреВ рд▓реЗрдВред рдпрд╣ рдЙрд╕ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдИ рд╕рд╛рдЗрдЯрдореИрдк рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ред

рдПрдХ рд▓рд┐рдВрдХ рдХреНрд░реЙрд▓рд░ рдореЗрдВ рджреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИрдВ, рдФрд░ рджреЛрдиреЛрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. robots.txt рдХреА рдЖрдЬреНрдЮрд╛ рджреЗрдВред рдХрд┐рд╕реА рднреА URL рдХреЛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ can_fetch рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬрд┐рд╕реЗ рд╕рд╛рдЗрдЯ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред рдорд╛рдирдХ-рд▓рд╛рдЗрдмреНрд░реЗрд░реА urllib.robotparser рдирд┐рдпрдореЛрдВ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрдврд╝рддреА рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдХрд░рддреА рд╣реИред
  2. рд╣реЛрд╕реНрдЯ рдкрд░ рд░рд╣реЗрдВ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рди рдмрдирд╛рдПрдВред рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рд▓рд┐рдВрдХ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдЬрд┐рдирдХрд╛ рд╣реЛрд╕реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реЛрд╕реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, URL рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рддрд╛рдХрд┐ /page рдФрд░ /page#section рдПрдХ рдмрд╛рд░ рдЧрд┐рдиреЗ рдЬрд╛рдПрдБ, рдФрд░ рдПрдХ seen рд╕реЗрдЯ рдмрдирд╛рдПрдБ рддрд╛рдХрд┐ рд▓рд┐рдВрдХ рдЧреНрд░рд╛рдл рдореЗрдВ рдЪрдХреНрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рди рдЬреБрдбрд╝реЗ рд░рд╣реЗрдВред
python Copy
import requests
from collections import deque
from html.parser import HTMLParser
from urllib.parse import urljoin, urldefrag, urlparse
from urllib.robotparser import RobotFileParser

HEADERS = {"User-Agent": "Mozilla/5.0 (link-discovery)"}

class LinkParser(HTMLParser):
    """рдПрдХ рдкреГрд╖реНрда рдореЗрдВ <a> рдЯреИрдЧ рд╕реЗ рд╣рд░ href рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред"""
    def __init__(self):
        super().__init__()
        self.links = []
    def handle_starttag(self, tag, attrs):
        if tag == "a":
            for key, value in attrs:
                if key == "href" and value:
                    self.links.append(value)

def load_robots(base_url):
    rp = RobotFileParser()
    rp.set_url(urljoin(base_url, "/robots.txt"))
```python
rp.read()           # рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд┐рдпрдореЛрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдХреНрд░реЙрд▓-рдбрд┐рд▓реЗ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ
    return rp

def crawl(start_url, max_pages=200, user_agent="*"):
    """robots.txt рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реБрдП рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХрд╛ рдЪреМрдбрд╝рд╛рдИ-рдкреНрд░рдердо рдЪрд▓рдирд╛ред"""
    host = urlparse(start_url).netloc
    robots = load_robots(start_url)

    seen = {start_url}
    queue = deque([start_url])
    found, skipped = set(), []

    while queue and len(found) < max_pages:
        url = queue.popleft()

        # рдЕрдиреБрдкрд╛рд▓рди рдЧреЗрдЯ: рдХрднреА рднреА рдЙрд╕ рдкрде рдХреЛ рди рд▓рд╛рдПрдВ рдЬреЛ рд╕рд╛рдЗрдЯ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред
        if not robots.can_fetch(user_agent, url):
            skipped.append(url)
            continue

        try:
            resp = requests.get(url, headers=HEADERS, timeout=30)
            resp.raise_for_status()
        except requests.RequestException:
            # рдПрдХ рдмреБрд░рд╛ URL рдмреИрдВрдб рд╕реЗ рдмрд╛рд╣рд░ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЗрдирд▓рд╛рдЗрди рдирд╣реАрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
            continue
        if "text/html" not in resp.headers.get("Content-Type", ""):
            continue

        found.add(url)

        parser = LinkParser()
        parser.feed(resp.text)
        for href in parser.links:
            absolute = urldefrag(urljoin(url, href))[0]   # рд╕рдорд╛рдзрд╛рди + #fragment рдХреЛ рдЫреЛрдбрд╝реЗрдВ
            if urlparse(absolute).netloc == host and absolute not in seen:
                seen.add(absolute)
                queue.append(absolute)

    return found, skipped

if __name__ == "__main__":
    pages, disallowed = crawl("https://example.com/", max_pages=200)
    print(f"рдкрд╛рдП рдЧрдП {len(pages):,} рдкреГрд╖реНрда; robots.txt рджреНрд╡рд╛рд░рд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП {len(disallowed)} рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ред")

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

рдпрд╣ рдкрд╣рд▓реЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  • рдХреНрд░реЙрд▓рд░ рд╡рд╣ рд╕рдм рдЦреЛрдЬрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдЗрдЯрдореИрдк рдЫреЛрдбрд╝рддрд╛ рд╣реИ; рд╕рд╛рдЗрдЯрдореИрдк рд╡рд╣ рд╕рдм рдЦреЛрдЬрддрд╛ рд╣реИ рдЬреЛ рдХреНрд░реЙрд▓рд░ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ред рджреЛрдиреЛрдВ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕рдмрд╕реЗ рдкреВрд░реНрдг рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╕рдВрдШ рд▓реЗрдВред
  • рдЕрд╕рдлрд▓рддрд╛ рдмреИрдВрдб рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣рддреА рд╣реИред рдПрдХ URL рдЬреЛ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЗрд╕ рдкрд╛рд╕ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреНрд░реЙрд▓ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ - рдПрдХ рдмреБрд░рд╛ рдкреГрд╖реНрда рдкреВрд░реА рдпрд╛рддреНрд░рд╛ рдХреЛ рдХрднреА рднреА рд░реЛрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЧрд┐рд░рд╛рдП рдЧрдП URL рдХреЛ рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред
  • рд╡рд┐рдирдореНрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд╡рд░реНрддреАрддрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдВред рдКрдкрд░ рджрд┐рдП рдЧрдП рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдХреНрд░реЙрд▓рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд░рдо рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ 3 рд╕реЗ рдЕрдзрд┐рдХ рд╢реНрд░рдорд┐рдХреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд░рдЦреЗрдВ, рдФрд░ рдХрд┐рд╕реА рднреА Crawl-delay рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВ рдЬреЛ robots.txt рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдХреНрд░реЙрд▓рд░ рдХреЗрд╡рд▓ HTML рд╣реИред рд▓реЛрдб рдХреЗ рдмрд╛рдж JavaScript рджреНрд╡рд╛рд░рд╛ рдкреЗрдВрдЯ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ requests рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд╣реИрдВред рдпрд╣реА рд╡рд╣ рдЕрдВрддрд░ рд╣реИ рдЬрд┐рд╕реЗ рд╡рд┐рдзрд┐ 6 рдмрдВрдж рдХрд░рддрд╛ рд╣реИред

рд╡рд┐рдзрд┐ 6 - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рднрд╛рд░реА рдкреГрд╖реНрдареЛрдВ рдХреЛ Scrapeless Scraping Browser рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ

requests-рдЖрдзрд╛рд░рд┐рдд рдХреНрд░реЙрд▓рд░ рдЬреЛ рднреА рдмрд╛рдЗрдЯреНрд╕ рд╕рд░реНрд╡рд░ рднреЗрдЬрддрд╛ рд╣реИ рдЙрд╕реЗ рдкрдврд╝рддрд╛ рд╣реИред рдПрдХ рдПрдХрд▓-рдкреГрд╖реНрда рдРрдк, рдПрдХ рдЕрдирдВрдд-рд╕croll рдХреИрдЯрд▓реЙрдЧ, рдпрд╛ рдПрдХ React/Vue/Next.js рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╡реЗ рдмрд╛рдЗрдЯреНрд╕ рдПрдХ рдРрдк рд╢реЗрд▓ рд╣реИрдВ - <div id="root"></div> рдкреНрд▓рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ - рдФрд░ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рддрдм рдЪрд┐рддреНрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдмрдВрдбрд▓ рдЪрд▓рддрд╛ рд╣реИред рд╕рд╛рдзрд╛рд░рдг HTTP рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛; рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рдХрдиреЗрдХреНрд╢рди рдПрдХрд▓ рд╡реЗрдмрд╕реЙрдХ рдкрд░реАрдХреНрд╖рдг URL рд╣реИ рдЬреЛ рдЖрдкрдХреЗ API рдХреБрдВрдЬреА рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХрдиреЗрдХреНрд╢рди рдЖрдХрд╛рд░ рд╣реИ:

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}"

рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╣рд╛рде рдореЗрдВ рд▓реЗрдХрд░, рд▓рдХреНрд╖реНрдп рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рд▓реЗрдВ:

python Copy
from urllib.parse import urljoin, urldefrag, urlparse

def discover_rendered_links(start_url, proxy_country="US"):
    """рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ JS-рднрд╛рд░реА рдкреГрд╖реНрда рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рдФрд░ рд╕рдорд╛рди-рд╣реЛрд╕реНрдЯ рд▓рд┐рдВрдХ рдПрдХрддреНрд░ рдХрд░реЗрдВред"""
    host = urlparse(start_url).netloc
    homepage = f"{urlparse(start_url).scheme}://{host}/"

    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(scraping_browser_url(proxy_country))
        context = browser.contexts[0] if browser.contexts else browser.new_context()
        page = context.pages[0] if context.pages else context.new_page()

        # рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЧреГрд╣рдкреГрд╖реНрда рдХреЛ рдЧрд░реНрдо рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╕рддреНрд░ рдХреБрдХреАрдЬрд╝ рд▓реЗ рдЬрд╛рдП, рдлрд┐рд░ рд▓рдХреНрд╖реНрдп рдкрд░ рдЬрд╛рдПрдВред
        page.goto(homepage, wait_until="domcontentloaded", timeout=60_000)
        page.goto(start_url, wait_until="networkidle", timeout=60_000)

рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб DOM рд╕реЗ hrefs рдкрдврд╝реЗрдВ, рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЪрд▓ рдЪреБрдХреА рд╣реЛред

Copy
    hrefs = page.eval_on_selector_all(
        "a[href]", "els => els.map(e => e.getAttribute('href'))"
    )
    browser.close()

links = set()
for href in hrefs:
    if not href:
        continue
    absolute = urldefrag(urljoin(start_url, href))[0]
    if urlparse(absolute).netloc == host:
        links.add(absolute)
return links

if name == "main":
found = discover_rendered_links("https://example.com/app/catalog")
print(f"рд░реЗрдВрдбрд░ рдХреЗ рдмрд╛рдж {len(found):,} рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ рдЦреЛрдЬреЗ рдЧрдП")
for u in sorted(found)[:10]:
print(" ", u)

Copy
рдЗрд╕рд╕реЗ рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреИрдЯрд░реНрди:

- **рд╣реЛрдордкреЗрдЬ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ, рдлрд┐рд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВред** рдкрд╣рд▓реЗ `goto` рд╕реЗ `/` рд╕рддреНрд░ рдХреЛ рдХреБрдХреАрдЬрд╝ рдЙрдард╛рдиреЗ рдФрд░ рд╕рд╛рдЗрдЯ рдХреЗ рдкрд╣рд▓реЗ рд▓реЛрдб рдХреА рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ; рджреВрд╕рд░рд╛ `goto` рдЙрд╕ рдкреГрд╖реНрда рдкрд░ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдардВрдбреЗ рд╕рддреНрд░ рдкрд░ рд╕реАрдзреЗ рдЧрд╣рд░реЗ URL рдкрд░ рдЬрд╛рдирд╛ рдЪреБрдиреМрддреА рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
- **рд▓рдХреНрд╖реНрдп рдкрд░ `wait_until="networkidle"`** рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░рд╛рдЙрдЯрд░ рдХреЛ DOM рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд▓рд┐рдВрдХ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рджреЗрддрд╛ рд╣реИред рдЕрдирдВрдд рд╕реНрдХреНрд░реЙрд▓ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рдиреЗ рддрдХ рд▓реВрдк рдореЗрдВ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ (`page.mouse.wheel`) рдФрд░ рдлрд┐рд░ рд╕рдВрдЧреНрд░рд╣ рдХрд░реЗрдВред
- **рд░реЗрдВрдбрд░рд┐рдВрдЧ Scrapeless рдХреЗ рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдЪрд▓рддреА рд╣реИ,** рдЖрдкрдХреЗ рдорд╢реАрди рдкрд░ рдирд╣реАрдВред рд╕реНрдерд╛рдиреАрдп `playwright install chromium` рдХреЗрд╡рд▓ CDP рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ рдЬреЛ `wss://browser.scrapeless.com/...` рдЕрдВрдд рдмрд┐рдВрджреБ рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИред
- **рдкрд░рд┐рдгрд╛рдо рдХреЛ рдпреВрдирд┐рдпрди рдореЗрдВ рд╡рд╛рдкрд╕ рдбрд╛рд▓реЗрдВред** рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рд╕рд╛рдЗрдЯрдореИрдк рд╕реЗрдЯ рдФрд░ рд╕реНрдЯреЗрдЯрд┐рдХ-рдХреНрд░реЙрд▓ рд╕реЗрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ; рдЕрдВрддрд┐рдо рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд URL рджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреБрдХреНрдд рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдбреВ-рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВред

рдПрдХ рдкреВрд░реНрдг рдХреНрд░реЙрд▓рд░ рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдпрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрдердб 5 рдореЗрдВ `requests.get` рдмреЙрдбреА рдХреЛ рдЙрди рд╣реЛрд╕реНрдЯреЛрдВ рдкрд░ `discover_rendered_links` рдХреЗ рд▓рд┐рдП рдмрджрд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рднрд╛рд░реА рд╣реИрдВ, рдФрд░ рд╕рд░реНрд╡рд░-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдмрд╣реБрдордд рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддреЗ `requests` рдкрде рдХреЛ рдмрдирд╛рдП рд░рдЦреЗрдВред рд╡рд╣ HTTP-рдкреНрд░рдердо, рдмреНрд░рд╛рдЙрдЬрд╝рд░- рджреВрд╕рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХреЗрд╡рд▓ рдЙрди рдкреГрд╖реНрдареЛрдВ рддрдХ рдХреНрд▓рд╛рдЙрдб-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдкрдпреЛрдЧ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

---

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

рд╣рд░ рд╡рд┐рдзрд┐ рдПрдХ рд╕реЗрдЯ рдХреЗ рдкреВрд░реНрдг URLs рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рддреА рд╣реИ; рдЕрдВрддрд┐рдо рд╕реВрдЪреА рд╕рднреА рдХреЗ рдмреАрдЪ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рд╣реАрди рд╕рдВрдШ рд╣реИред рдПрдХ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдпреБрдХреНрдд рд░рд┐рдХреЙрд░реНрдб рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ:

```json
// рд╕реНрдХреАрдорд╛ рдЪрд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╛рддреНрдордХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдШ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
// рдЧрд┐рдирддреА рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдгреАрдп рдирдореВрдиреЗ рд╣реИрдВ, рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдХрд╛ рдЖрдЬ рдХрд╛ рдареЛрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдирд╣реАрдВред
{
  "host": "example.com",
  "discovered_at_methods": ["sitemap", "robots", "bfs_crawl", "rendered"],
  "counts": {
    "from_sitemap": 226,
    "from_bfs_crawl": 40,
    "from_rendered": 18,
    "union_unique": 248
  },
  "sample_urls": [
    "https://example.com/",
    "https://example.com/blog",
    "https://example.com/blog/how-to-scrape-bbb-business-listings",
    "https://example.com/app/catalog?page=2"
  ],
  "skipped_by_robots": [
    "https://example.com/private/"
  ]
}

рдкреВрд░реНрдг-рд╕рд╛рдЗрдЯ URL рдХреА рдЦреЛрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдИрдорд╛рдирджрд╛рд░ рдЕрд╡рд▓реЛрдХрди, рдЬреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд╛рдирдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВ:

  • рд╕рдВрдШ рдХрд┐рд╕реА рдПрдХрд▓ рд╕реНрд░реЛрдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред рд╕рд╛рдЗрдЯрдореИрдк рд╡рд╣ рдмрддрд╛рддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рдХрд╛рд╢рдХ рдиреЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛; BFS рдХреНрд░реЙрд▓ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдЕрдирд╛рдереЛрдВ рдХреЛ рдЦреЛрдЬрддрд╛ рд╣реИ; рд░реЗрдВрдбрд░реНрдб рдкрд╛рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ рдЦреЛрдЬрддрд╛ рд╣реИред рдХрд╡рд░реЗрдЬ рд╕рднреА рддреАрдиреЛрдВ рдХрд╛ рд╕рдВрдШ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд╖рд┐рджреНрдз рдкрде рдШрдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдорд╛рдирдХреАрдХреГрдд URLs рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд┐рдХрд╛рд▓реЗрдВред рдЕрдВрд╢реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рддрдп рдХрд░реЗрдВ рдХрд┐ рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕реНрд▓реИрд╢ рдФрд░ ?utm_* рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рдЧрд┐рдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░реЗрдВ тАФ рдЕрдиреНрдпрдерд╛ /page рдФрд░ /page/ рдХреБрд▓ рдХреЛinflate рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • рд╕рд╛рдЗрдЯрдореИрдк рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдкреАрдЫреЗ рд░рд╣ рдЬрд╛рддреЗ рд╣реИрдВред рдПрдХ рдкреГрд╖реНрда рдЬреЛ рдЕрдВрддрд┐рдо рд╕рд╛рдЗрдЯрдореИрдк рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдХреНрд░реЙрд▓ рд╕реНрддрд░реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рдкреВрд░реНрдг рд╕реВрдЪреА рдХрд╛ рдорд╣рддреНрд╡ рд╣реИ, рддреЛ рд╣рдореЗрд╢рд╛ рд╕рд╛рдЗрдЯрдореИрдк рдкрдврд╝рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреНрд░реЙрд▓ рдЪрд▓рд╛рдПрдВред
  • рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ HTTP рдХреЗ рд▓рд┐рдП рдЕрджреГрд╢реНрдп рд╣реИрдВред рдпрджрд┐ рдЬреНрдЮрд╛рдд-рдмрдбрд╝реЗ рд╕рд╛рдЗрдЯ рдХрд╛ requests рдХреНрд░реЙрд▓ рдХреЗрд╡рд▓ рдХреБрдЫ URLs рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ тАФ рдЙрд╕ рд╣реЛрд╕реНрдЯ рдХреЛ рдореЗрдердб 6 рдореЗрдВ рдмрдврд╝рд╛рдПрдВред
  • рдЕрдВрдд рддрдХ рдирд┐рд╖рд┐рджреНрдз рд╕реВрдЪреА рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВред skipped_by_robots рдПрд░реЗ рдПрдХ TODO рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИред рд╡реЗ рдкрде рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддреЗред

рдирд┐рд╖реНрдХрд░реНрд╖: рдПрдХ рдкреВрд░реНрдг URL рд╕реВрдЪреА рдмрдирд╛рдПрдВ

рд╣рд░ рдкреГрд╖реНрда рдвреВрдВрдврдирд╛ рдЪрд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рдЪрд╛рд▓реЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдореИрдиреНрдпреБрдЕрд▓ рдЬрд╛рдВрдЪ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВ: site: рдХреЗ рд╕рд╛рде рдЖрдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдПрдВ, рд╕рд╛рдЗрдЯрдореИрдк рд╕реНрдерд╛рди рдФрд░ рдирд┐рд╖рд┐рджреНрдз рдкрдереЛрдВ рдХреЗ рд▓рд┐рдП robots.txt рдкрдврд╝реЗрдВ, рдШреЛрд╖рд┐рдд URLs рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯрдореИрдк рдкреЗрдбрд╝ рдкрд░ рдЪрд▓реЗрдВ, рдЕрдирд╛рдереЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдЧреНрд░рд╛рдл рдХреЛ BFS-рдХреНрд░реЙрд▓ рдХрд░реЗрдВ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рднрд╛рд░реА рд╣реЛрд╕реНрдЯ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░реЗрдВред рд╕рдВрдШ рд▓реЗрдВ, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд URLs рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд┐рдХрд╛рд▓реЗрдВ, рдФрд░ рдпрд╣реА рд╕реВрдЪреА рд╣реИред
рдкреНрд░реЙрдХреНрд╕реА рдкрд░рдд рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреНрд░рд╕реНрддреБрдд рд╕реНрддрд░ рдХреЛ рд░реВрдЯ рдХрд░рддреА рд╣реИ, рджреЗрдЦреЗрдВ SSL рдкреНрд░реЙрдХреНрд╕реА рдХреНрдпрд╛ рд╣реИ?ред рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрддреНрдкрд╛рдж рдкреГрд╖реНрда рдФрд░ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдкреГрд╖реНрда рдХреНрд▓рд╛рдЙрдб-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрддрд░ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВ; рдкреВрд░реНрдг рдПрд╕рдбреАрдХреЗ рд╕рдВрджрд░реНрдн docs.scrapeless.com рдкрд░ рд╣реИред рдкреНрд░рд╕реНрддреБрдд рд╕реНрддрд░ рдкрд░ рдпреВрдПрд╕ рдПрдЧреНрд░реЗрд╕ рдХреЛ рдкрд┐рди рдХрд░реЗрдВ, рд▓рдХреНрд╖рд┐рдд рдкреГрд╖реНрда рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдордкреГрд╖реНрда рдХреЛ рдЧрд░реНрдо рдХрд░реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдпреВрдЖрд░рдПрд▓ рдкрд░ robots.txt рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВ, рдФрд░ рдЕрдВрддрд┐рдо рд╕реВрдЪреА рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрд░реАрдХреЗ рдХрд╛ рд╕рдВрдШ рдорд╛рдиреЗрдВред


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

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

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


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

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЛ рдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдХрд╛рдиреВрдиреА рд╣реИ?

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

рдкреНрд░рд╢реНрди: рд╕рд╛рдЗрдЯрдореИрдк рдпрд╛ рдХреНрд░реЙрд▓ - рдХреМрди рдкреВрд░реА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ?

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

рдкреНрд░рд╢реНрди: рдореЗрд░рд╛ рдХреНрд░реЙрд▓рд░ рдПрдХ рдмрдбрд╝реЗ рд╕рд╛рдЗрдЯ рдкрд░ рдХреЗрд╡рд▓ рдХреБрдЫ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдХреНрдпреЛрдВ рдЦреЛрдЬрддрд╛ рд╣реИ?

рд╕рд╛рдЗрдЯ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдЧреНрд░рд╛рд╣рдХ-рдкрдХреНрд╖ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг requests рдлрд╝реЗрдЪ рдРрдк рд╢реЗрд▓ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓реЗ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реЛрддреЗред рдЙрди рд╣реЛрд╕реНрдЯреЛрдВ рдХреЛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдкрджреНрдзрддрд┐ 6) рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ рдФрд░ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рдбреЛрдо рд╕реЗ рдПрдВрдХрд░ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред

рдкреНрд░рд╢реНрди: рдореБрдЭреЗ URL рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рдПрдХрд▓-рд╣реЛрд╕реНрдЯ рд╕рд╛рдЗрдЯрдореИрдк рдкрдврд╝рдиреЗ рдФрд░ рдПрдХ рд╡рд┐рдирдореНрд░ рд╕реНрдереИрддрд┐рдХ рдХреНрд░реЙрд▓ рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╕рд░ рдирд╣реАрдВред рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рддрдм рдЕрдкрдирд╛ рд╕реНрдерд╛рди рдЕрд░реНрдЬрд┐рдд рдХрд░рддреА рд╣реИ рдЬрдм рд╕рд╛рдЗрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЬрд┐рдпреЛ-рдЧреЗрдЯ рдХрд░рддреА рд╣реИ (рдЖрдкрдХреЛ рдЕрдореЗрд░рд┐рдХреА рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдПрд╕ рдПрдЧреНрд░реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ), рдЬрдм рдЖрдкрдХрд╛ рдЖрдИрдкреА рд░реЗрдЯ-рд╕реАрдорд┐рдд рд╣реИ, рдпрд╛ рдЬрдм рдкреНрд░рд╕реНрддреБрдд рд╕реНрддрд░ рдХреЛ рдЬреИрд╡рд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╛рд╕реАрдп рдПрдЧреНрд░реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрджреНрдзрддрд┐ 6 рдореЗрдВ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рдХрдиреЗрдХреНрд╢рди proxy_country="US" рдХреЗ рд╕рд╛рде рдПрдЧреНрд░реЗрд╕ рдХреЛ рдкрд┐рди рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рд╢реНрди: рдЬрдм рдПрдХ рдкреГрд╖реНрда рдПрдХ рдПрдХреНрд╕реЗрд╕ рдЪреИрд▓реЗрдВрдЬ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд╕рд╛рдлрд╝ рдкреНрд░рд╕реНрддреБрдд рдХреИрд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ?

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

рдкреНрд░рд╢реНрди: рдЬрдм рд╕рд╛рдЗрдЯ рдЕрдкрдирд╛ рдПрдЪрдЯреАрдПрдордПрд▓ рдпрд╛ рд▓рд┐рдВрдХ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

рд╕реНрдереИрддрд┐рдХ рдХреНрд░реЙрд▓рд░ рд╕рд╛рдорд╛рдиреНрдп <a href> рддрддреНрд╡ рдкрд░ рдХреБрдВрдЬреА рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдЗрд╕реЗ рддреЛрдбрд╝рдирд╛ рджреБрд░реНрд▓рдн рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдкреНрд░рд╕реНрддреБрдд рд╕реНрддрд░ рдХреЗ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрдВрдЯреЗрдирд░ рддрдХ рддрдВрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЬрдм рдорд╛рд░реНрдХрдЕрдк рдмрджрд▓рддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рдпрджрд┐ рд╕рд╛рдЗрдЯ рдЕрдкрдиреА рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдкреБрдирд░реНрдЧрдард┐рдд рдХрд░рддреА рд╣реИ рддреЛ рдЗрд╕реЗ рд╡рд╛рдкрд╕ a[href] рддрдХ рдЪреМрдбрд╝рд╛ рдХрд░реЗрдВред

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

рдкрджреНрдзрддрд┐ 5 рдореЗрдВ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдХреНрд░реЙрд▓рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реМрдореНрдп рд╣реИред рдпрджрд┐ рдЖрдк рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐ рд╣реЛрд╕реНрдЯ 3 рдХрд╛рд░реНрдпрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдкреНрд░рдХреНрддрд┐ рдмрдирд╛рдП рд░рдЦреЗрдВ, robots.txt рдореЗрдВ рдХрд┐рд╕реА рднреА Crawl-delay рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░реЗрдВ, рдФрд░ рдХрднреА рднреА рдХрд┐рд╕реА рдРрд╕реЗ рдкрде рдХреЛ рдХрддрд╛рд░рдмрджреНрдз рди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдирд┐рд╖реЗрдз рдирд┐рдпрдо рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВред

рдкреНрд░рд╢реНрди: рдореИрдВ рдЕрдВрддрд┐рдо рдпреВрдЖрд░рдПрд▓ рд╕реЗрдЯ рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреИрд╕реЗ рд╣рдЯрд╛рдКрдВ?

рдЧрд┐рдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд░реЗрдВ: #fragments рдХреЛ рд╕реНрдЯреНрд░рд┐рдк рдХрд░реЗрдВ, рддрдп рдХрд░реЗрдВ рдХрд┐ рдПрдХ рдЯреНрд░реЗрд▓рд┐рдВрдЧ рд╕реНрд▓реИрд╢ рдФрд░ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореАрдЯрд░ (?utm_*) рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдФрд░ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░реВрдк рдкрд░ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде set рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ set рд▓реМрдЯрд╛рддреА рд╣реИ; рд╕рднреА рдХрд╛ рд╕рдВрдШ рд▓реЗрдВ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧрд┐рд░ рдЬрд╛рдПрдВрдЧреЗред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдореИрдВ рдПрдЖрдИ рдПрдЬреЗрдВрдЯ рдпрд╛ рдХрд┐рд╕реА рднреА рдПрд╕рдбреАрдХреЗ рдХреЗ рдмрд┐рдирд╛ рдпреВрдЖрд░рдПрд▓ рдЦреЛрдЬ рд╕рдХрддрд╛ рд╣реВрдВ?

рд╣рд╛рдВред рд╡рд┐рдзрд┐рдпрд╛рдВ 1-5 рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ requests рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред рд╡рд┐рдзрд┐ 6 Playwright рдХреЛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реЗ рд╕реАрдбреАрдкреА рдкрд░ рдЬреЛрдбрд╝рддреА рд╣реИ - рдХреЛрдИ рдПрдЬреЗрдВрдЯ рдврд╛рдБрдЪрд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд░реНрдл рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдпреВрдЖрд░рдПрд▓ред

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

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

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