¿Cómo se pueden detectar los robots de los motores de búsqueda usando php?
php
web-crawler
bots
estupendo
fuente
fuente
strpos
regresaFALSE
en caso de falla. Sin embargo, es más rápido y eficiente (sin preprocesamiento y sin almacenamiento O (m)).Utilizo el siguiente código que parece funcionar bien:
actualización 16-06-2017 https://support.google.com/webmasters/answer/1061943?hl=es
mediapartners añadidos
fuente
Verifique
$_SERVER['HTTP_USER_AGENT']
algunas de las cadenas enumeradas aquí:http://www.useragentstring.com/pages/useragentstring.php
O más específicamente para rastreadores:
http://www.useragentstring.com/pages/useragentstring.php?typ=Crawler
Si desea, por ejemplo, registrar el número de visitas de los rastreadores de motores de búsqueda más comunes, puede usar
fuente
Puede pagar si es un motor de búsqueda con esta función:
Entonces puedes usarlo como:
fuente
Estoy usando esto para detectar bots:
Además, uso una lista blanca para bloquear bots no deseados:
Un bot no deseado (= usuario falso positivo) puede resolver un captcha para desbloquearse a sí mismo durante 24 horas. Y como nadie resuelve este captcha, sé que no produce falsos positivos. Entonces, la detección de bots parece funcionar perfectamente.
Nota: Mi lista blanca se basa en el archivo robots.txt de Facebook .
fuente
)
en su primer fragmento de código.Debido a que cualquier cliente puede configurar el agente de usuario para lo que quiera, buscar 'Googlebot', 'bingbot', etc. es solo la mitad del trabajo.
La segunda parte es verificar la IP del cliente. En los viejos tiempos, esto requería mantener listas de IP. Todas las listas que encuentra en línea están desactualizadas. Los principales motores de búsqueda admiten oficialmente la verificación a través de DNS, como explican Google https://support.google.com/webmasters/answer/80553 y Bing. http://www.bing.com/webmaster/help/how-to-verify -bingbot-3905dc26
Al principio, realice una búsqueda DNS inversa de la IP del cliente. Para Google, esto trae un nombre de host en googlebot.com, para Bing está en search.msn.com. Entonces, debido a que alguien podría establecer un DNS inverso en su IP, debe verificar con una búsqueda de DNS directa en ese nombre de host. Si la IP resultante es la misma que la del visitante del sitio, está seguro de que es un rastreador de ese motor de búsqueda.
Escribí una biblioteca en Java que realiza estas comprobaciones por ti. Siéntase libre de portarlo a PHP. Está en GitHub: https://github.com/optimaize/webcrawler-verifier
fuente
Yo uso esta función ... parte de la expresión regular proviene de prestashop pero le agregué más bot.
De todos modos, tenga cuidado de que algunos bots usen el navegador como agente de usuario para falsificar su identidad
(tengo muchas ip rusas que tienen este comportamiento en mi sitio)
Una característica distintiva de la mayoría de los bot es que no llevan ninguna cookie, por lo que no se les adjunta ninguna sesión.
(No estoy seguro de cómo, pero esta es sin duda la mejor manera de rastrearlos)
fuente
Puede analizar el agente de usuario (
$_SERVER['HTTP_USER_AGENT']
) o comparar la dirección IP del cliente ($_SERVER['REMOTE_ADDR']
) con una lista de direcciones IP de los robots de los motores de búsqueda .fuente
Use la biblioteca de código abierto Device Detector, ofrece una función isBot (): https://github.com/piwik/device-detector
fuente
Esa sería la forma ideal de disfrazarse de arañas. Es de un script de código abierto llamado [YACG] - http://getyacg.com
Necesita un poco de trabajo, pero definitivamente es el camino a seguir.
fuente
Hice una función buena y rápida para esto
Esto cubre el 99% de todos los posibles bots, motores de búsqueda, etc.
fuente
Estoy usando este código, bastante bien. Será muy fácil saber que los agentes de usuario visitaron su sitio. Este código abre un archivo y escribe el user_agent en el archivo. Puede comprobar cada día este archivo
yourdomain.com/useragent.txt
visitando y conociendo nuevos user_agents y ponerlos en su condición de cláusula if.Este es el contenido de useragent.txt
fuente
Detector 100% de bots de trabajo. Está funcionando correctamente en mi sitio web.
fuente
Si realmente necesita detectar bots del motor de GOOGLE, debería nunca confiar en la dirección "user_agent" o "IP" porque "user_agent" se puede cambiar y de acuerdo con lo que dijo Google en: Verificación de Googlebot
Aquí está mi código probado:
En este código, verificamos "nombre de host", que debe contener "googlebot.com" o "google.com" al final de "nombre de host", que es realmente importante para verificar el dominio exacto, no el subdominio. Espero que disfrutes ;)
fuente
Para Google, estoy usando este método.
Créditos: https://support.google.com/webmasters/answer/80553
fuente
fuente