Mi megkerüljük a védelmet a google botoktól, a programozó megjegyzéseitől

Ha valaha megpróbáltál egy elemzőt írni a Google-nak, valószínűleg tudod, hogy számos intézkedés van a keresőmotor használatával szemben. Ebben a megjegyzésben olyan technikákról fogok beszélni, amelyek lehetővé teszik ezen intézkedések megkerülését.

Hozzájárulás: Kicsit sokkal kényelmesebb, véleményem szerint a Google elemzésének módját írja le a hozzászólásban, és egy kicsit többet a Google Hack-ről. Mindazonáltal ez a megjegyzés is érdekes, ezért olvasd el!

A jegyzet láthatóbbá tételéhez egy kis szkriptet készítettem Perl-ben:

/http\:\/\/(?:www\.)([0-9a-z-]+\.ru) \\ ig;
nyomtassa ki az STDERR ">>" -t. # 40; skaláris @sites # 41;. "találtak \ n";
hacsak # 40; skaláris @sites # 41; # 123;
print STDERR ">> 60 másodperc alatti. \ n";
alvás 60;
goto NEW_ATTEMPT;
# 125;
nyomtasson "\ L $ _ \ E \ n" for # 40; @sites # 41; ;
alvás 6;
# 125;
# 125;

A parancsfájl feladata, hogy a RU zónában több ezer véletlenszerű helyet kapjon. A jövőben minden kutatáshoz felhasználható. Például 10 000 webhelyből választhat, és meghatározhat egy CMS-t. amelyeket rájuk használnak.

Tehát milyen nehézségek várnak ránk a Google kibocsátásának elemzése során? Először is egy User-agent teszt. Ha a "Wget / ..." értékre van állítva, akkor a kereső nem hajlandó végrehajtani a lekérdezést. Másodszor - captcha. Ha túl gyakran lép be a Google-hoz hasonló kérésekkel, a felhasználó átkerül a sorry.google.com oldalra, ahol a rendszer kéri a számok beírását a képből. Harmadszor, egy IP-cím nagyszámú kérése esetén a rendszer megkérheti, hogy adjon pár percet a pihenésre, még akkor is, ha átmentük a captcha-t.

Az első megoldandó probléma nagyon egyszerű - csak tekintsd meg a böngésző felhasználó-ügynökeit, és ennek megfelelően módosítsd az oldal betöltését (wget, curl, lynx, ...). Általában wgetet használok a szkriptjeimben, amelyek a "user-agent" opcióval álcázhatók.

A CAPTCHA-val egy kicsit bonyolultabb. Írja fel a felismerõt - a feladat nagyon nehéz, bár megoldható. De szerencsére nem kell megtörned a captcha-t - csak egyszer menj át rajta. Először megtisztítjuk a cookie-kat. A cookie-kkal való együttműködéshez a Cookie Monster Addon plugint használom:

Mi megkerüljük a védelmet a google botoktól, a programozó megjegyzéseitől

Ezután elkezdjük az elemzőnket, és várjuk, amíg a Google elkárom, hogy kéréseink gyanúsan emlékeztetnek a számítógépes vírusok tevékenységére.


query = 11, page = 0
>> 0 találat
>> 60 másodperces alvás.
^ C

Megszüntetjük az elemzőt, és adunk meg valamilyen lekérdezést a Google-ba. A böngészőnek meg kell jelennie valami ilyesmi:

Mi megkerüljük a védelmet a google botoktól, a programozó megjegyzéseitől

Töltsön semmit, futtassa a tcpdump-ot a gyökérből:

tcpdump -A -s 1500 dst google.com és a 80-as port

Az -A opció azt jelenti, hogy a lehallgatott csomagokat szöveges formában kell megjeleníteni, "-s 1500" -, hogy minden csomag esetében csak az első 1500 bájt (alapértelmezés szerint: 68) kell megjeleníteni. Ha figyelembe vesszük, hogy ez a legnagyobb megengedett csomagméret az Ethernet hálózatokban, teljesen meg fogjuk őket tekinteni. A csapat többi része érthető.

Menj végig a captcha-n, állítsd le a tcpdump-ot, és keressétek a cookie-k elfogott csomagjait:

A HTTP kérésről egy cookie-t (Cookie: ...) távolítunk el, és írjuk a szkriptünkbe:

$ opt. = "--no-cookies - header" Cookie: S = sajnálom = BZXzL3t3l_-lBy59IEcOPQ;. "";

Ez minden - Captcha, bármi is volt! Elképesztő, hogy a Google nem kéri, hogy időről időre ismét átkeresse. A számítás lehet a cookie élettartama?

És az utolsó probléma az, amikor a Google elkezdi készíteni olyan oldalakat, mint az előző képernyőképen látható, csak captcha nélkül. Két megoldása van: késlelteti a Google-hívások közötti késedelmet (lásd a szkriptkódot), vagy ha az idő fut, a proxylistán keresztül működik.

Azt hiszem, ebben az esetben nem kell sietni - akkor hagyjuk az elemző munka éjjel és reggel, hogy egy lista több ezer oldalakon. By the way, ha valaki szüksége van erre a listára, itt van.

Tetszik a post? Ossza meg másokkal:

(A JS-nek engedélyezve kell lennie)