Crawler 2.0

Som många vet så har jag två tjänster som visar information om domäner, nämligen DomainDB.com samt DomainTool.se. Jag var i behov av att uppdatera den informationen som fanns så det var dags att starta den crawler som jag skapat för några år sedan.

Crawlern (eller webcrawler, spider som det också heter) var tämligen ouppdaterad så jag tog tillfället i akt och använder nu enbart Redis. Tidigare så använde jag MySQL + Sphinx:

  • db0 – Kö för domäner som skall besökas
  • db1 – Koppling mellan namnserver och IP-nummer
  • db2 – Koppling mellan www.domän och IP-nummer
  • db3 – Sidtitlar

Db0 rensas och fylls på ungefär varannan dag med runt 25 miljoner nya domäner som besöks så efter cirka en vecka så har jag besökt 100 miljoner domäner. För server-kapacitet så använder jag Amazon EC2 och deras spot instances som är lite billigare och utnyttjar oanvända EC2-instanser.

4 reaktioner på ”Crawler 2.0

  1. Sjukt intressant! Har ett projekt som skulle behöva en stabil, produktionstestad crawler… Nått du kan tänka dig dela med dig av koden för? Jag finns på em@kth.se om du vill ha snabbare svar än här :)

  2. Fattade jag rätt att du hinner ladda ner source för 25 miljoner sajter i veckan? Dags att uppdatera min crawler för gserp.se :)

  3. Riktigt intressant.. Har själv planerat och klurat en hel del på hur man bygger en crawler efter best practice.. Vill självklart bygga den så effektiv som möjligt, men endå så snäll mot diverse webservrar som möjligt..

    Undrar lite din crawler normaliserar duplicate content (e.g, www vs non-www eller / vs /index.html, osv) samt även hur snäll den är mot servern. Kör du bara på non-stop och requestar hela siten eller har du någon form av delay mellan varje request mot samma server/domän?

    En annan sak som jag stött på som problem, eller en flaskhals snarare, är robots.txt. Tar du hänsyn till den eller skiter du i den helt? Isf, hur hanterar du diverse spider-traps så som kalendrar som länkar in i evigheten eller error sidor som redirectar till sig själva.

  4. Troligen klarar han att göra det som beskrivs i processen. Dvs kolla upp domänerna och ladda ner sidtitel ifrån startsidan.

    Har också projekt där crawler skulle vara bra, dock endast i indexeringssyfte.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>