-
da ... cam aia este problema ... momentan nu sunt inca la acel pas ... partea aceasta o voi implementa mai tarziu, dupa ce lansez site-ul.
Momentan am implementat cele 2 functii de care vorbeam. Imi e lene sa mai traduc in romana ce am scris in pagina de about de pe site asa ca dau copy paste:
You can remove a site permanently from our index and stop WSIDb Bot to crawl that site through our delete page ( you need to upload a file on your site's root directory ).
You can add a site to our index and tell WSIDb Bot to crawl that site through our add page. If your site was previously removed through our delete page you will have to reauthorize WSIDb BOT by uploading a file on your site's root directory.
-
1 Ataşament(e)
Interfata, crawler-ul si functionalitatea sunt realizate. Urmeaza optimizare si debuging.
Momentan crawlerul preia si afiseaza: ip, titlu, cont de analytics, cont de adsense
Introdusesem si functia de nameservere dar comparand rezultatele intre ip si nameservere, ip-urile ofereau mult mai multe match-uri, prin urmare am renuntat la preluarea nameserverelor
Voi testa in ce masura pot prelua, matchui informatii din whois in saptamana care mi-a ramas pana la lansare. In functie de rezultate e posibil sa apara si aceasta facilitate la lansare.
new main page: Web Site Information Database - Coming soon
Ataşament 2103
-
Ok ... update:
Ruleaza in acest moment crawlerul de mai bine de 24 de ore. Din cele 192.000 de domenii din baza de date care s-au adunat dealungu vremii ( ce a mai crawluit inainte cu ce a crawluit in ultimele 24 de ore )
in baza de date sunt deja 33848 bloguri pe blogspot iar wordpress deja 11982 ... ceea ce mi se pare un pic cam mult aia inseamna ca 1/3 din crawl s-ar duce pe bloguri pe blogspot si wordpress ... ceea ce nu e prea eficient din punctul meu de vedere ... prin urmare am renuntat la a mai indexa bloguri pe WSIDb.COM si voi lansa un site separat cu acelasi crawl dar care sa se axeze doar pe bloguri, denumire WBIDb.COM ( Web Blog Information Database ) .
Cele 2 site-uri vor comunica intre ele in sensul ca daca WSIDb gaseste url-ul unui blog pe blogspot sau wordpress sau alte site-uri care ofera acest serviciu, il va "pasa" lui WBIDb, si daca WBIDb gaseste link-uri catre alte site-uri care nu sunt pe blogspot sau wordpress si WSIDb-ul nu le are in baza de date, le va pasa lui WSIDb. Nu stiu daca WBIDb-ul va fi lansat odata cu WSIDb-ul dar chiar daca nu va fi lansat in acelasi timp el va veni la o perioada scurta dupa. :)
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
In cazul in care va plictisesc cu detalii sa imi spuneti sa nu mai postez
Dupa multa optimizare si reorganizare functii si taskuri in interiorul robotelului de crawl am ajuns de la o medie de 24 de secunde pe domeniu ( minim 12 secunde maxim a durat si 1 minut si ceva la un domeniu ) la o medie de 3 secunde pe domeniu. ( minim cam 1 secunda si un pic, maxim cam 10 secunde )
O medie de 3 secunde pe domeniu crawluit inseamna:
30 000 domenii crawluite 1 zi
210 000 7 zile
6 300 000 30 zile
Pentru moment ma voi axa doar pe crawling domenii noi, cel putin 3 luni, dupa care o sa ii dau drumu si la revisit-uri
Am implementat si pagina de delete domenii care functioneaza impecabil si permite bulk delete a maxim 20 de domenii odata.
Odata cu stergerea domeniului se sterg si toate subdomeniile acestuia iar crawlingul nu se va mai face pe acel domeniu.
mai am 4 days 23 hrs 48 min 11 sec until launch ... pana atunci se va mai lucra la optimizare and stuff ....
ca si idee in acest proiect s-au "investit" aproximativ 800 de ore de lucru pana in acest moment :)
-
Trebuie sa faci sa poti rula mai multe crawlere simultan (minim 3). N-are sens daca un domeniu raspunde mai greu, celelalte sa astepte.
-
Pai oricum probabil sunt mai multe threaduri care crawleresc domeniile care-s intr-o coada de asteptare. Si probabil are setat un timp maxim de asteptare pt un domeniu, de max 10 secunde sa zicem. Eu cel putin asa as pune.
-
tymbark, mi se pare mie sau ai acces la server ? :)))))
Da, in cazul in care un domeniu nu trimite pagina in maxim 10 secunde, da skip.
si da, sunt mai multe threaduri, momentan 2 ... pot mari la cate vreau/cate tine serverul, am incercat ieri cand nu era optimizat asa de mult, si am rulat 10 deodata si nu avea nici o problema ...
pe de alta parte trebuie sa ma gandesc si la Google si faptu ca s-ar putea sa nu ii convina atatea pagini noi intr-o singura ora/zi ... prin urmare tre sa gasesc un echilibru ... oricum, inafara de optimizare care inca se lucreaza totul e gata :)
-
:D Nu am acces la server, dar eu asa as fi facut. Ti-am zis ca am facut si eu un crawler web distribuit pt un proiect la facultate si se aseamana oarecum cu ce faci tu, chiar daca noi crawleream orice pagina, nu doar domenii. Eventual ai putea sa-l faci si tu distribuit, daca nu l-ai facut deja, si poti sa-l pui mai incolo, cand sa zicem ca se merita ca proiect, pe mai multe servere sa ruleze distribuit si atunci il poti pune sa crawlereasca si pagini si eventual sa ia informatii despre pagina, gen backlink-uri, etc. Chiar daca o sa creasca baza de date, ti-am zis, la Amazon S3 sunt niste preturi modice, gen:
First 1 TB / month $0.140 per GB $0.093 per GB
Next 49 TB / month $0.125 per GB $0.083 per GB
Next 450 TB / month $0.110 per GB $0.073 per GB
Mai mult de-atat cost curentul consumat de PC :P
Oricum, vezi tu mai pe viitor cum il mai dezvolti, desi daca tot ai investit 800 de ore in el, e pacat sa nu faci ceva si mai complicat, sa mai investesti 800 de ore :)
-
pot duce linistit destul de mult trafic si destul de mult in materie de baza de date dar in cazul in care la un moment dat crapa sau atinge cine stie ce nivel care nu-l mai pot duce, da, e o solutie foarte ieftina.
-
Sunt vreo 150 de milioane de domenii. La o marime medie a primei pagini de vreo 10k ai de descarcat vreun tera jumate.
-
am facut o medie scurta la 200 de domenii crawluite, media e de 80 KB .. clar nu e o medie foarte relevanta dar cat de cat e ok deci aia inseamna cam 12 Tera de crawluit ca sa preiau toate domeniile principale ... daca mai pun si subdomenii la socoteala ... cine stie ... poate vreo 30 .. 40 Tera ... in aproximativ un an jumate am facut aproape 24 de Tera de download/upload pe calculatorul personal conform netlimiter ... si asta in conditiile in care downloadul/uploadul nu s-a facut continuu cum ar face crawlerul ... deci 30 .. 40 Tera nu mi se pare un capat de tara ..
Iar daca vorbim de o baza de date cu 150.000.000 domenii inseamna cam 60 GB ... care la fel ... nu e un capat de tara ... oi vedea cum evolueaza proiectul, oricum ... in procesul de optimizare am implementat/testat crawling de pe mai multe servere separate si vad ca functioneaza fara probleme, lucru care ma va putea ajuta pe viitor daca va fi necesar.
Optimizarea a luat sfarsit cel putin pentru acuma ... cand depasesc pragul de 1.000.000 de domenii voi vedea cum se misca treaba si cat de rapid crawluiesc/afisez informatii atunci.
Lucrez acuma la o metoda cat mai ok pentru a prelua informatii din whois din pacate cam greu sa tin pasul cu crawlul iar unele tld-uri precum .ro nu ofera prea multe informatii ( adica deloc ) ... sper sa gasesc o solutie acceptabila pana la lansare. In cazul in care nu stiti cererile de whois sunt limitate cam pentru toate tld-uri. Spre exemplu .org nu permit decat 4 cereri / minut, iar .eu nu ofera prin apiul de whois decat daca domeniu e ocupat sau liber ...
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
Intre timp am implementat 3 variabile din partea alexa.com: rank-ul, numar de link-uri care intra si email-ul.
Una dintre problemele mari pe care le aveam erau legate de link-uri care le gaseam pe site-uri catre alte domenii si care defapt nu mai erau bune ( domeniile nu mai existau ) ... functia care o foloseam pentru a afla ip-ul domeniului in cazurile in care exista ip era foarte rapida si facea totu cam in 0.2 secunde, dar in cazul in care domeniul nu mai exista sau nu raspundea dura pana la 4-5 secunde sa imi trimita eroarea. Am inlocuit acea functie cu o alta care imi ofera raspunsul in acelasi timp de 0.2-0.3 secunde si eroarea in maxim 1 secunda, si in plus imi ofera informatii si despre nameservere ( se vor prelua 2 in baza de date). Partea cu ip-ul este deja modificata, urmeaza sa implementez partea cu nameserverele ..