Anonim

Vodim web mjesto za klijenta na kojem prikazuju veliku bazu podataka koje su točno i polako prikupljali tijekom godina. Svoje podatke pronalaze na webu na raznim mjestima. Više nego vjerovatno da je to zbog strugača koji prolazi njihovim stranicama po stranicu i vađenja potrebnih podataka u vlastitu bazu podataka. A u slučaju da se pitate, znaju da su to njihovi podaci zbog jednog zasađenog podatka u svakoj kategoriji na njihovoj web lokaciji.

Provela sam puno istraživanja o tome u posljednjih nekoliko dana, i mogu vam reći da ne postoji savršeno rješenje za sve. Ipak, otkrio sam nekoliko stvari koje bi im učinile ovo malo težim. To sam implementirao za klijenta.

Ajaksificirani paginirani podaci

Ako imate puno paginiranih podataka, a stranice paginirate tako da na kraj URL-a dodate drugi broj, tj. Http://www.domain.com/category/programming/2 - tada napravite posao gusjenice toliko lakši. Prvi problem je to što ga je lako prepoznati uzorak, pa je postavljanje strugača na ove stranice lako kao pita. Drugi problem, bez obzira na URL sljedećih stranica u kategoriji, više je nego vjerovatno da će na njih postojati sljedeća i prethodna veza.

Učitavanjem paginiranih podataka putem JavaScripta bez ponovnog umetanja stranice, to znatno otežava posao vani brojnih strugača. Google je tek nedavno počeo analizirati JavaScript na stranici. Mali je nedostatak učitavanja ovakvih podataka. Googleu pružate nekoliko manje stranica za indeksiranje, ali tehnički bi stranica sa stranicama trebala biti usmjerena na stranicu s korijenskom kategorijom putem kanilizacije. Ajaksificirajte svoje stranice na stranici sa stranicama.

Slučajno odaberi predložak

Strugači će često biti malo prilagođeni vašim podacima. Pripazit će na određeni div id ili klasu za naslov, treću ćeliju u svakom retku za vaš opis itd. Postoji lako prepoznatljiv uzorak za koji većina skelara može raditi s većinom podataka koji dolaze iz iste tablice, prikazan je istim predloškom. Randomirajte svoje div idove i imena klasa, umetnite nasumične stupce tablice nasumično sa 0 širinom. Pokažite svoje podatke u tablici na jednoj stranici, u stilskim div-ovima i u kombinaciji na drugom predlošku. Predstavljajući svoje podatke predvidivo, može ih se predvidjeti i precizno izbrisati.

Honeypot

To je prilično uredno u svojoj jednostavnosti. Na ovu sam stranicu naišao na nekoliko stranica o sprečavanju struganja stranica.

  • Na svom poslužitelju stvorite novu datoteku koja se zove gotcha.html.
  • U svoju datoteku robots.txt dodajte sljedeće:
    Korisnički agent: *
    Onemogući: /gotcha.html

    To poručuje svim robotima i paucima koji indeksiraju vašu web lokaciju da ne indeksiraju datoteku gotcha.html. Bilo koji uobičajeni web alat za indeksiranje poštuje želje vaše datoteke robots.txt i neće pristupati toj datoteci. tj. Google i Bing. Možda ćete zapravo htjeti provesti ovaj korak i pričekati 24 sata prije nego što krenete na sljedeći korak. To će osigurati da vas alat za indeksiranje ne blokira slučajno zbog činjenice da je već bio na pola pretraživanja prilikom ažuriranja datoteke robots.txt.
  • Postavite vezu na gotcha.html negdje na svojoj web stranici. Nije važno gdje. No, preporučio bih u podnožju, pazite da ta veza nije vidljiva, u CSS-u, prikaz: nijedan;
  • Sada se prijavite u IP / opće informacije o počinitelju koji je posjetio ovu stranicu i blokirajte ih. Inače, možete smisliti skriptu koja će im pružiti netočne i podatke o smeću. Ili možda lijepu osobnu poruku vama od njih.

Redoviti web gledatelji neće moći vidjeti vezu, pa je slučajno neće kliknuti. Ugledni alati za indeksiranje (na primjer, Google) uvažavat će želje vašeg robots.txt i neće posjetiti datoteku. Dakle, jedina računala koja bi trebala naletjeti na ovu stranicu jesu ona koja imaju zlonamjerne namjere ili netko pregleda vaš izvorni kod i nasumično klikne naokolo (i dobro, ako se to dogodi).

Postoji nekoliko razloga zbog kojih to ne može uvijek uspjeti. Prvo, puno scrapers ne funkcionira kao uobičajeni web pretraživači i ne otkrivaju podatke samo slijedeći svaku vezu sa svake stranice na vašoj web lokaciji. Strugalice su često ugrađene tako da se fiksiraju na određenim stranicama i slijede samo određene strukture. Na primjer, strugač bi mogao biti pokrenut na stranici s kategorijama, a zatim mu je rečeno da posjećuje samo URL-ove sa riječju / podacima u pužu. Drugo, ako netko pokreće svoj strugač na istoj mreži kao i drugi, a koristi se zajednički IP, imat ćete zabranu za cijelu mrežu. Za to biste morali imati vrlo popularno web mjesto.

Pišite podatke u letu u letu

Pronađite manje polje podataka, a ne nužno duge nizove teksta jer to može dodatno otežati oblikovanje stranice. Izlažući ove podatke unutar slike, mislim da postoje sigurni da postoje metode u svakom programskom jeziku kako bi se tekst dinamički napisao na sliku (u php, imagettftext). Ovo je vjerojatno najučinkovitije kod numeričkih vrijednosti jer brojevi pružaju mnogo beznačajniju SEO prednost.

Alternativa

To nije opcija za ovaj projekt. Zahtijeva se prijava nakon određenog broja pregleda stranica ili prikazivanje ograničene količine podataka bez prijave, tj. Ako imate 10 stupaca, prikazuju samo 5 korisnicima koji nisu prijavljeni.

Nemojte pogriješiti

Ne trudite se smisliti neko rješenje temeljeno na korisničkom agentu robota. Te informacije lako može prevariti strugač koji zna što rade. Na primjer, googleov bot može se lako oponašati. Više nego vjerojatno ne želite zabraniti Google.

Sprječavanje struganja mjesta