protecție Bypass parsare Trepachov Dmitry

site-uri web parsing

Dacă analiza un site-uri mai mult sau mai puțin grave - puteți face față parsing de protecție. De exemplu, dacă analiza orice site pentru destul de mult timp, și trimite cereri de foarte multe ori - acest site poate bloca prin ip si da captcha.

Principiul de bază al eludării parsare - parser dvs. ar trebui să se comporte oamenii așa cum s-ar fi comportat care au vizitat site-ul.

Cel mai simplu lucru pe care îl puteți face - este de a stabili întârzierea dintre solicitările către site-ul străin.

Întârzierile sunt setate folosind funcția PHP somn. acest parametru are nevoie de timp în secunde - în acest moment, script-ul pur și simplu „a adormit“, și apoi punerea în aplicare a acestuia începe din nou.

Important: loc întârzierea neregulate, sau un script care trimite cereri de la o frecvență, de exemplu, exact 5 secunde, ușor de controlat și banitsya.

Din nou, intervalul de întârziere pentru fiecare site ar trebui să fie selectate în mod individual.

Un dezavantaj al metodei anterioare este că viteza de parsare scade semnificativ din cauza acestor întârzieri. Puteți utiliza alt mod - schimbare ip (din site-urile banyat interpretor IP pe computer cu parser).

În cazul în care parser dvs. este localizat pe computerul local, apoi schimba IP-ul este foarte ușor - trebuie doar să reporniți router-ul (o cutie cu internet). În acest caz, IP-ul va fi înlocuit (cu excepția cazului, desigur, nu este o statică) - și poate continua să analizeze următorul.

În cazul în care, cu toate acestea, acțiunea are loc pe server - există două moduri.

lucru avansat cu buclat

A se vedea articolul. - este descris un lucru avansat cu Curl.

recomandări

Vă recomandăm să faceți următoarele lucruri pentru a simula de browser:

1. Trimiteți și primiți cookie-uri.

2. Trimite antetele HTTP.

3. browser-Simulate opțiune de trimitere CURLOPT_USERAGENT: curl_setopt ($ curl, CURLOPT_USERAGENT, 'Mozilla / 4.0 (compatibile; MSIE 7.0; Windows NT 5.1)');

Lucrul cu https

Uneori este că site-ul este de lucru prin protocolul HTTPS. mai degrabă decât http. În acest caz, aveți nevoie de următoarele două opțiuni: curl_setopt ($ curl, CURLOPT_SSL_VERIFYPEER, fals); curl_setopt ($ curl, CURLOPT_SSL_VERIFYHOST, fals); . Folosește-le, iar problema va fi rezolvată.

site-ul mobil

Ce se face în continuare:

Mai departe spre rezolvarea problemelor la următorul link: obiective pentru lecție.

Când toate decid - du-te la studiul unui subiect nou.