рд╕рд╛рдЗрдЯрдореИрдк рд╕реЗ рддреИрдпрд╛рд░ рд▓рд┐рдВрдХ рддрдХ: рдкреВрд░реНрдг-рд╕рд╛рдЗрдЯ URL рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП 6-рд╕рдореВрд╣ рд╡рд┐рдзрд┐
Expert in Web Scraping Technologies
рдореБрдЦреНрдп рдмрд┐рдВрджреБ:
- рдХреЛрдИ рдПрдХрд▓ рдЖрджреЗрд╢ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рд░ рдкреГрд╖реНрда рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗред рдПрдХ рдкреВрд░реНрдг URL рд╕реВрдЪреА рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдЖрддреА рд╣реИ: рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрдиреБрдорд╛рди рдХреЗ рд▓рд┐рдП
site:рдЦреЛрдЬ рдСрдкрд░реЗрдЯрд░, рдЬреЛ рд╕рд╛рдЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреА рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдПsitemap.xmlрдФрд░ рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕, рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдПrobots.txtрд╕рд╛рдЗрдЯрдореИрдк рдирд┐рд░реНрджреЗрд╢, рдЬреЛ рдХреБрдЫ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ SEO рдХреНрд░реЙрд▓рд░ рдпрд╛ рдПрдХ рдкрд╛рдпрдерди рдХреНрд░реЙрд▓рд░, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЙрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рдХреЗрд╡рд▓ рддрдм рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рддреА рд╣реИред - рд╕рд╛рдЗрдЯрдореИрдк рд╕рдмрд╕реЗ рддреЗрдЬ рдкреНрд░рд╛рдзрд┐рдХреГрдд рд╕реНрд░реЛрдд рд╣реИрдВ тАФ рдЬрдм рд╡реЗ рдореМрдЬреВрдж рд╣реЛрдВ рдФрд░ рд╡рд░реНрддрдорд╛рди рд░рд╣реЗрдВред рдПрдХ рд╕рд┐рдВрдЧрд▓
requests.get("/sitemap.xml")рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯрдореИрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрдд рдпрд╛рддреНрд░рд╛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕реИрдХрдбрд╝реЛрдВ URLs рд▓реМрдЯрд╛ рд╕рдХрддреА рд╣реИред - рдПрдХ рдЪреМрдбрд╝рд╛рдИ-рдкреНрд░рдердо рдХреНрд░реЙрд▓рд░ рд╡рд╣ рдЦреЛрдЬрддрд╛ рд╣реИ рдЬреЛ рд╕рд╛рдЗрдЯрдореИрдк рдЫреЛрдбрддрд╛ рд╣реИред рд╕рд╛рдЗрдЯрдореИрдк рд▓реЗрдЦрдХ-рдкреНрд░рднреВрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЕрдХреНрд╕рд░ рдкреБрд░рд╛рдиреЗ рд╣реЛрддреЗ рд╣реИрдВ; рдЖрдВрддрд░рд┐рдХ
<a href>рд▓рд┐рдВрдХ рдХрд╛ BFS рдпрд╛рддреНрд░рд╛ рдЕрдирд╛рде рдкреГрд╖реНрдареЛрдВ, рдЧрд╣рд░реЗ рд▓рд┐рдВрдХ рд╡рд╛рд▓реЗ рд╕рд╛рдордЧреНрд░реА рдФрд░ рдЕрдиреНрдп рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдЦреЛрдЬрддреА рд╣реИ рдЬрд┐рд╕реЗ рд╕рд╛рдЗрдЯрдореИрдк рдиреЗ рднреБрд▓рд╛ рджрд┐рдпрд╛ред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдХреНрд░реЙрд▓рд░ рд╣рд░ URL рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗrobots.txtDisallowрдирд┐рдпрдореЛрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИред - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдЬрдирд┐рдд рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рд┐рдВрдЧрд▓-рдкреЗрдЬ рдРрдкреНрд╕ рдФрд░ рдЕрдирдВрдд-рд╕реНрдХреНрд░реЙрд▓ рдХреИрдЯрд▓реЙрдЧ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рд▓рд┐рдВрдХ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЪрд┐рддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп 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 рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ:
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
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
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> рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ, рдРрд╕реЗ рд▓рд┐рдВрдХ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдиреЗ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдЪреМрдбрд╝рд╛рдИ-рдкреНрд░рдердо рджреЛрд╣рд░рд╛рдПрдБ рдЬрдм рддрдХ рд╕реАрдорд╛ рдЦрд╛рд▓реА рди рд╣реЛ рдЬрд╛рдП рдпрд╛ рдЖрдк рдкреГрд╖реНрда рдХреА рд╕реАрдорд╛ рди рдЫреВ рд▓реЗрдВред рдпрд╣ рдЙрд╕ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдИ рд╕рд╛рдЗрдЯрдореИрдк рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ред
рдПрдХ рд▓рд┐рдВрдХ рдХреНрд░реЙрд▓рд░ рдореЗрдВ рджреЛ рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпрд╛рдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИрдВ, рдФрд░ рджреЛрдиреЛрдВ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
robots.txtрдХреА рдЖрдЬреНрдЮрд╛ рджреЗрдВред рдХрд┐рд╕реА рднреА URL рдХреЛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗcan_fetchрдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬрд┐рд╕реЗ рд╕рд╛рдЗрдЯ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред рдорд╛рдирдХ-рд▓рд╛рдЗрдмреНрд░реЗрд░реАurllib.robotparserрдирд┐рдпрдореЛрдВ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдкрдврд╝рддреА рдФрд░ рдореВрд▓реНрдпрд╛рдВрдХрд┐рдд рдХрд░рддреА рд╣реИред- рд╣реЛрд╕реНрдЯ рдкрд░ рд░рд╣реЗрдВ рдФрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рди рдмрдирд╛рдПрдВред рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рд▓рд┐рдВрдХ рдХреЛ рдХрддрд╛рд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ рдЬрд┐рдирдХрд╛ рд╣реЛрд╕реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реЛрд╕реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, URL рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╣рдЯрд╛рдХрд░ рддрд╛рдХрд┐
/pageрдФрд░/page#sectionрдПрдХ рдмрд╛рд░ рдЧрд┐рдиреЗ рдЬрд╛рдПрдБ, рдФрд░ рдПрдХseenрд╕реЗрдЯ рдмрдирд╛рдПрдБ рддрд╛рдХрд┐ рд▓рд┐рдВрдХ рдЧреНрд░рд╛рдл рдореЗрдВ рдЪрдХреНрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рди рдЬреБрдбрд╝реЗ рд░рд╣реЗрдВред
python
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
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
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 рдкрдврд╝реЗрдВ, рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЪрд▓ рдЪреБрдХреА рд╣реЛред
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)
рдЗрд╕рд╕реЗ рдЗрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреИрдЯрд░реНрди:
- **рд╣реЛрдордкреЗрдЬ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ, рдлрд┐рд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВред** рдкрд╣рд▓реЗ `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 рдХреЛ рд╕реНрдХреНрд░реЗрдкрд▓реЗрд╕ рд╕реНрдХреНрд░реЗрдкрд┐рдВрдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реЗ рд╕реАрдбреАрдкреА рдкрд░ рдЬреЛрдбрд╝рддреА рд╣реИ - рдХреЛрдИ рдПрдЬреЗрдВрдЯ рдврд╛рдБрдЪрд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд░реНрдл рдЖрдкрдХреЗ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╡реЗрдм рд╕реЙрдХреЗрдЯ рдпреВрдЖрд░рдПрд▓ред
рд╕реНрдХреНрд░реИрдкрд▓реЗрд╕ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд▓рд╛рдЧреВ рдХрд╛рдиреВрдиреЛрдВ, рд╡рд┐рдирд┐рдпрдореЛрдВ рдФрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЧреЛрдкрдиреАрдпрддрд╛ рдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрд╡реИрдз рдпрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдмреНрд▓реЙрдЧ рдпрд╛ рддреГрддреАрдп-рдкрдХреНрд╖ рд▓рд┐рдВрдХ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рднреА рджреЗрдпрддрд╛ рдХреЛ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рджреЗрдпрддрд╛ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░реИрдкрд┐рдВрдЧ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ рдХрд╛рдиреВрдиреА рд╕рд▓рд╛рд╣рдХрд╛рд░ рд╕реЗ рдкрд░рд╛рдорд░реНрд╢ рдХрд░реЗрдВ рдФрд░ рд▓рдХреНрд╖реНрдп рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреА рд╕реЗрд╡рд╛ рдХреА рд╢рд░реНрддреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред



