Comment détecter les robots des moteurs de recherche en utilisant PHP?
php
web-crawler
bots
terrifiant
la source
la source
strpos
retourne aussiFALSE
en cas d'échec. C'est plus rapide et plus efficace (pas de prétraitement et pas de stockage O (m)).J'utilise le code suivant qui semble fonctionner correctement:
mise à jour 16-06-2017 https://support.google.com/webmasters/answer/1061943?hl=fr
ajouté mediapartners
la source
Vérifier la
$_SERVER['HTTP_USER_AGENT']
certaines des chaînes répertoriées ici:http://www.useragentstring.com/pages/useragentstring.php
Ou plus spécifiquement pour les robots d'exploration:
http://www.useragentstring.com/pages/useragentstring.php?typ=Crawler
Si vous souhaitez enregistrer le nombre de visites des moteurs de recherche les plus courants, vous pouvez utiliser
la source
Vous pouvez vérifier s'il s'agit d'un moteur de recherche avec cette fonction:
Ensuite, vous pouvez l'utiliser comme:
la source
J'utilise ceci pour détecter les bots:
De plus, j'utilise une liste blanche pour bloquer les bots indésirables:
Un bot indésirable (= utilisateur faux positif) est alors capable de résoudre un captcha pour se débloquer pendant 24 heures. Et comme personne ne résout ce captcha, je sais qu'il ne produit pas de faux positifs. La détection des robots semble donc fonctionner parfaitement.
Remarque: ma liste blanche est basée sur le fichier robots.txt de Facebook .
la source
)
dans votre premier morceau de code.Parce que n'importe quel client peut définir l'agent utilisateur comme il le souhaite, la recherche de «Googlebot», «bingbot», etc. ne représente que la moitié du travail.
La 2ème partie vérifie l'adresse IP du client. Dans l'ancien temps, cela nécessitait de maintenir des listes d'adresses IP. Toutes les listes que vous trouvez en ligne sont obsolètes. Les principaux moteurs de recherche prennent officiellement en charge la vérification via DNS, comme expliqué par Google https://support.google.com/webmasters/answer/80553 et Bing http://www.bing.com/webmaster/help/how-to-verify -bingbot-3905dc26
Dans un premier temps, effectuez une recherche DNS inversée de l'adresse IP du client. Pour Google, cela apporte un nom d'hôte sous googlebot.com, pour Bing, c'est sous search.msn.com. Ensuite, comme quelqu'un pourrait définir un tel DNS inversé sur son IP, vous devez vérifier avec une recherche DNS directe sur ce nom d'hôte. Si l'adresse IP résultante est la même que celle du visiteur du site, vous êtes sûr qu'il s'agit d'un robot d'exploration de ce moteur de recherche.
J'ai écrit une bibliothèque en Java qui effectue ces vérifications pour vous. N'hésitez pas à le porter en PHP. C'est sur GitHub: https://github.com/optimaize/webcrawler-verifier
la source
J'utilise cette fonction ... une partie de la regex vient de prestashop mais j'y ai ajouté plus de bot.
Quoi qu'il en soit, veillez à ce que certains robots utilisent un navigateur comme un agent utilisateur pour simuler leur identité
(j'ai de nombreuses adresses IP russes qui ont ce comportement sur mon site)
Une caractéristique distinctive de la plupart des robots est qu'ils ne portent aucun cookie et qu'aucune session ne leur est attachée.
(Je ne sais pas comment mais c'est certainement la meilleure façon de les suivre)
la source
Vous pouvez analyser l'agent utilisateur (
$_SERVER['HTTP_USER_AGENT']
) ou comparer l'adresse IP du client ($_SERVER['REMOTE_ADDR']
) avec une liste d'adresses IP des robots des moteurs de recherche .la source
Utilisez la bibliothèque open source Device Detector, elle propose une fonction isBot (): https://github.com/piwik/device-detector
la source
Ce serait le moyen idéal de dissimuler les araignées. Cela provient d'un script open source appelé [YACG] - http://getyacg.com
Besoin d'un peu de travail, mais certainement la voie à suivre.
la source
J'ai fait une bonne et rapide fonction pour cela
Cela couvre 99% de tous les robots, moteurs de recherche, etc.
la source
J'utilise ce code, plutôt bien. Vous connaîtrez très facilement les utilisateurs-agents visités sur votre site. Ce code ouvre un fichier et écrit le user_agent dans le fichier. Vous pouvez vérifier chaque jour ce fichier en
yourdomain.com/useragent.txt
accédant à et connaître les nouveaux user_agents et les mettre dans votre condition de clause if.C'est le contenu de useragent.txt
la source
Détecteur de Bot 100% fonctionnel. Cela fonctionne avec succès sur mon site Web.
la source
Si vous avez vraiment besoin de détecter les robots du moteur GOOGLE, vous ne devez jamais vous fier à l'adresse "user_agent" ou "IP", car "user_agent" peut être modifié et en fonction de ce que Google a dit dans: Vérification de Googlebot
Voici mon code testé:
Dans ce code, nous vérifions "hostname" qui doit contenir "googlebot.com" ou "google.com" à la fin de "hostname", ce qui est vraiment important pour vérifier le domaine exact et non le sous-domaine. J'espère que tu apprécies ;)
la source
Pour Google, j'utilise cette méthode.
Crédits: https://support.google.com/webmasters/answer/80553
la source
la source