De nombreuses araignées visitent notre site d'actualités. Nous dépendons des services GeoIP pour identifier l'emplacement physique de nos visiteurs et leur servir du contenu connexe. Nous avons donc développé un module avec la fonction module_init()
qui envoie IP à MaxMind et définit les cookies avec des informations de localisation. Pour éviter d'envoyer des requêtes sur chaque page, nous vérifions d'abord si le cookie est défini et, dans le cas contraire, nous envoyons des informations et définissons le cookie. Cela fonctionne bien avec les clients réguliers, mais ne fonctionne pas aussi bien lorsqu'une araignée parcourt le site. Chaque pageview invite une requête à MaxMind et cette activité devient un peu coûteuse. Nous recherchons une solution pour identifier les robots d'exploration ou, si c'est plus facile, les navigateurs légitimes avec les cookies activés et interroger MaxMind seulement quand c'est utile.Détecter les araignées ou les navigateurs avec les cookies activés
Répondre
Eh bien, il n'y a pas qu'une seule chose à faire pour être honnête. Je suggérerais ce que j'ai fait dans le passé pour combattre ce même problème. utiliser un script de détection de navigateur il y a un ton de classes là-bas pour détecter les navigateurs. Ensuite, vérifiez le navigateur contre une base de données de navigateurs connus. Ensuite, si le navigateur est dans votre liste, autorisez l'appel au service si vous n'utilisez pas un script "best guess".
Je veux dire par quelque chose comme ceci:
Alors ce que vous faites est dans le cas où un type de navigateur n'est pas dans la liste, il ne sera pas utiliser vos services payés DB à la place qu'il utilise cette classe qui peut être aussi proche que possible. De cette façon, vous obtenez le meilleur des deux mondes. Les robots n'accrochent pas de hits sur votre service IP et si un utilisateur passe devant votre navigateur vérifiez pour une raison quelconque qu'ils auront probablement un emplacement correct et apparaîtront comme normal sur votre site.
C'est un peu nerveux, je sais que j'espère juste que vous obtenez ce que j'essaie de dire ici. La vraie réponse est qu'il n'y a pas de réponse facile ou 100% bonne réponse à ce problème, j'ai fait beaucoup de sites avec la même situation et je suis devenu fou en essayant de le comprendre et c'est aussi proche de la perfection que je l'ai fait. sont venus. Depuis 99% de la plupart des robots d'exploration ligit aura une valeur comme ceci:
$_SERVER['HTTP_USER_AGENT'] = 'Googlebot', 'Yammybot', 'Openbot', 'Yahoo'... etc.
Une simple vérification du navigateur va faire, mais ce sont ceux ombragés qui peuvent répondre avec IE6 ou quelque chose. J'espère vraiment que cela aide comme je l'ai dit il n'y a pas de vraie réponse ici au moins pas que je l'ai trouvé à 100%, c'est un peu comme de savoir si un utilisateur est sur un portatif ces jours-ci, vous pouvez obtenir 99% là mais jamais 100% et cela fonctionne toujours que le client utilise ce 1% qui ne fonctionne pas lol.
Les araignées et les robots d'exploration ont généralement un utilisateur-agent distinct, peut-être que vous pouvez filtrer sur cela?
Merci. Tu m'as donné une idée. J'écris un journal avec chaque demande avec l'agent d'utilisateur. Filtrer les plus évidents est facile. Merci. –
webcrawlers de détection (à la fois légitimes et infâmes) peut être fait avec l'API ATL WebCrawler à www.atlbl.com
Merci. Je filtre les robots d'exploration légitimes en écrivant des agents utilisateurs pour les consigner et ajouter des conditions. Low tech mais fonctionne. Merci! –
Super, je suis contente d'avoir pu aider. – BrandonS