-
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 ..
-
Ai o tabela cu domeniile care nu mai exista ca sa nu le cauti IP-ul de fiecare data?
-
puthre, la inceput faceau parte din tabela de domenii crawluite dar am observat ca nu e rentabil deoarece erau destule ... intre timp am facut ca verificarea ip-ului sa se faca inainte de adaugare in tabela ...
am renuntat la whois momentan deoarece sunt mult prea multe variabile. Am implementat ce am zis mai sus: alexa rank, site-uri linking-in conform alexa si adresa de email a administratorului domeniului daca ea exista pe alexa plus preiau pana la 4 nameservere pentru fiecare domeniu ...
cam totul este gata ... poate tweak-uri minore, am sters tot crawlu si i-am dat drumu din nou sa vad cum se descurca si cam ce diferenta apare in baza de date ca si marime dupa adaugarea informatiilor de mai sus ...
il las peste noapte, pana maine o sa am suficiente domenii crawluite sa pot face o prognoza buna si sa vad daca apar eventuale erori ...
keep you posted :) have a nice night
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
Ok ... dupa o noapte de crawling am urmatoarele statistici:
5,327 domenii crawluite: 1.7 MB
10.000 domenii: 3.4 MB
100.000 domeniii 34 MB
1 milion 340 MB
10 milioane 3.4 GB
defapt au fost mai multe domenii crawluite dar o parte din ele ( vreo 15.000 ) le-am sters din statistici deoarece erau defapt subdomenii ale unui domeniu mare si nu am vrut sa le iau in considerare.
Imi plac statisticile. Am inclus si nameserverele si alexa si dupa optimizare am ajuns cam la aceeasi marime daca nu chiar un pic mai putin.
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
Mici modificari la design plus tld-uri de genul: com.ro au fost acum un pic evidentiate in pagina de tld domenii ...
Am mai facut ceva modificari in crawl, cele mai multe optimizari pentru a mari viteza de crawl.
http://www.wsidb.com/screenshots/domain_page.jpg
-
okey ... Web Site Information Database - WSIDb.COM e online
treaba sta in felul urmator ... am incercat sa rulez cu 5 robotzei odata cand baza de date avea ~ 100.000 domenii crawluite si alte 500.000 in asteptare si se cam agata
nu din cauza traficul ci din cauza bazei de date ... prin urmare acuma sunt la redesign al bazei de date si rulez momentan cu un singur robotzel ...
Statisticile din acest moment:
87709 ips in database
164511 domains in database
821173 domains to crawl
7596 adsense ids in database
35905 analytics ids in database
Astept pareri/sugestii
-
Ceva nu-i bine.. am pus meta-ul ala pe site-uri si totusi apar in indexul tau. sa inteleg ca nu tii cont de el?
-
Asa cum am spus mai sus si cum au precizat si alti forumisti ... nu era ok varianta cu meta. Prin urmare am introdus doar pagina de delete: Delete domain(s) from WSIDb.COM index.
Odata ce zice ca domeniile au fost sterse, teoretic ar trebui sa se intample instantaneu, practic am vazut ca in unele cazuri dureaza pana la cateva ore.
-
Observ ca se misca destul de greoi siteul, la mine dureaza intre 5-10 secunde sa deschida o pagina...
-
Da ... stiu ... lucrez la optimizare ...
--- Later Edit --- (ca mi-a fost lene sa apas "Edit")
UPDATE: peste un milion de domenii in db .. mai exact 1,034,454 ... din care 175,760 crawluite ... mici optimizari facute ... mai urmeaza altele ...