Programmaçy
Makalam.com-da näçe sany web sahypa (link) bar?
2 minut alar
Bu makalada makalam.com web-saýtyndaky ähli web sahypalary toplamagyň usulyny görerisiňiz, başga-ça aýdanyňda kerep çyrmaşmasy (dogry terjimesini bilseňiz komment ýazyň) barada gürrüň bolar!
TEORIÝA
Kerep çyrmaşmasy (web crawler) - wikipedia aýtmyşlaýyn - Internet bot-y bolup (käte möý boty hem diýilýär) ulgamlamlaýyn web sahypalyryny gözleýär we köp halatlarda gözleg dwižoklary (search engines) tarapyndan web indekslemesi üçin ulanylýar.
Web gözleg dwižoklary we başga käbir websaýtlary kerep çyrmaşmasy arkaly özleriniň kontentlerini täzeläp durýarlar. Kerep çyrmaşmalary gözleg dwižoklary tarapyndan proseslenmeli sahypalary göçürip alýarlar we ulanyjylar has amatly/çalt gözleg amala aşyrarlar ýaly ýüklenip alynan sahypalary indeksleýärler. Meselem Google gözleg dwižogy web kontentleri toplamak üçin Googlebot kerep çyrmaşmasyny ulanýar.
Kerep çyrmaşmaşy birnäçe maksatlara esaslanyp ulanylýar:
- Gözleg dwižok indekslenmesi. Ýokarda kän nygtaldy.
- Web arhiwlemesi. Geljekde maglumat saklanyşy üçin web sahypalardan gerekli informasiýalar çöpleýär.
- Web mining (gazyp alyş). Web mining internetden peýdaly/gerekli maglumatlary ýygnamaklyga kömek edýär.
- Web gözegçiligi (monitoring). Internetde awtorlyk hukuklarynyň bozulmagynyň öňüni almak üçin kerep çyrmaşmasy arkaly gözegçilik edilýär.
PRAKTIKA
Kerep çyrmaşmasyny döretmeklik çözýän meseläniňä görä ululygy/kynlygy bilen tapawutlanýar. Biziň gezegimizde makalam.com-daky web sahypalary toplamakdan ybaratdyr. Ýagny linkleri toplamaly bolar we strategiýa aşakdaky ýaly görnüşde bolar:
Kerep çyrmaşmasy ilki bilen www.makalam.com sahypasyna ýüzlenip ähli linkleri toplar, soň bolsa şol linklere hem ýüzlenip ýene-de täze linkler toplar we tä ähli web sahypalara toplaýança dowam eder.
ÝERINE ÝETIRMEK
Linkleri toplaýjy programmasyny şu salgyda görüp bolar. Link toplaýjysy rust programma dilinde ýazylyp open-source programmadyr we düzediş hem feature haýyşlaryna açyk.
Bu programma ýönekeýji http server bolandygy üçin, islendik http client programmasy (insomnia, postman ýa-da islendik brauzer) bilen test edip bolar.
Request endpoint: GET `http://0.0.0.0:4000/links?url=https://makalam.com`
Response payload:
{
"internal_links": [],
"external_links": [],
"time_elapsed": 0
}
NETIJE
Link toplaýjysy arkaly alynan netijäniň bir bölegini aşakda paýlaşdym.
Programma doly derejeli "kerep çyrmaşmasy" bolmak üçin käbir aşakdaky ýaly kriteriýalary göz öňüne tutulyp ýazylmaly:
- Parallellik. Tiz jogap gazanmak üçin bir wagtyň dowamynda parallel işgärler (thread workers) arkaly programmany işletmeli.
- Berklilik. Internet sahypalary duzakdan doly (zyýanly linkler, jogapsyz serwerler we ş.m ) we şol şertler göz öňüne tutulyp ýazylmaly.
- Mylakatlylyk. Az wagt içinde köp request etmeli däl.
SOŇY
Web traffigiň 20 göterimden gowragyny erbet botlar düzýänligi sebäpli web botlara garşy aldamaklyklyga ýa-da request sanlaryny limit-lemeklige (rate-limiter) mejbur bolunýar. Şonuň üçin hem web crawler-leriň gowy maksatlar üçin ulanylmagy zerurdyr. Şunluk bilen programmirlemekde täze bir zatlar öwrenensiňiz diýip umyt edýän we makalany tamamlaýan!
Bonus: link collector programmasy islendik query alýandygy üçin diňe makalam.com-yň link-lerini toplamak bilen çäklenmeýär (?url=https://islendik.website.com).
Salgylanylan resurslar: