Bad bot mais efficace ...

  • Auteur de la discussion Auteur de la discussion Zecat
  • Date de début Date de début
WRInaute accro
Une bad bot s'est pointé sur mon site (identifié comme bad avec un simple recherche sur l ip : 88.208.217.87). Bon la routine, un coup de deny.

Par contre, du haut de mon phpRank allez disons 2 :wink: Un truc m'interpelle :

1 - Quand je veux aller lire le contenu d'une page (à la rustique par un file get content), ca dure des plombes

2 - Et la je vois que les bots se gavent à raison de 100 ou 200 pages à la minute !

C'est quoi leur technique ? Ou alors il viennet juste faire coucou sans gober le contenu des pages ? Un truc m'échappe.
 
WRInaute accro
Zecat a dit:
1 - Quand je veux aller lire le contenu d'une page (à la rustique par un file get content), ca dure des plombes
C'est-à-dire ? Combien de temps pour une page de quelle taille ?

L'explication n'est pas dans le file_get_contents. Si ton accès semble nettement plus lent, ça pourrait être que ton système est surchargé ou que la connexion utilisée est lente ou surchargée ou qu'elle est foireuse (routage ?) ou que les bots font un simple HEAD alors que toi, tu fais un GET ou que les bots font plusieurs accès en même temps et non un après l'autre. Cela fait pas mal d'explications possibles...

Jean-Luc
 
WRInaute accro
jeanluc a dit:
Zecat a dit:
1 - Quand je veux aller lire le contenu d'une page (à la rustique par un file get content), ca dure des plombes
C'est-à-dire ? Combien de temps pour une page de quelle taille ?
J'ai pas fait de mesures precises mais je dirais entre 3 et 5 secondes selon la taille de la page voir plus sur les tres grosses pages (200k ou 300k)

jeanluc a dit:
ou que les bots font plusieurs accès en même temps et non un après l'autre. Cela fait pas mal d'explications possibles...
C'est ce que j'ai pensé en voyant d'un coup un accès quasi simultané à des dizaines de pages mais par acquis de conscience je me disais que peut etre il existait des commandes que je n'avais pas encore vues.
 
WRInaute impliqué
Les bots n'utilisent peut être pas php, on peut faire des requêtes en c++ aussi c'est un poil plus rapide et permet le multi thread.
 
WRInaute accro
C'est aussi peut etre moi qui ait codé mon truc a la hache comem un bucheron :roll: Si quelque'un voit mieux, j'explique ce dont j'ai besoin :

1- Imaginons une page (html ou php peu importe)

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx aaa xxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxx bbb xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxx aaaa xxxxxx

2 - Dans cette page seules les trois lignes qui contiennet aaa ou bbb m'interesse.

3 - et je dois faire ca pour quelques milliers voir dizaines de milliers de page.

Actuellement je fais ca :

1 - un file get contents (je choppe donc tout le contenu meme si il fait 500k et que au final il y a 2 ligne qui m'interessent)
2 - puis je foiune a coup de strpos dans le content pour extraire les lignes qui m interessent.

Si quelqu'un voit la combine géniale pour le faire plus vite et en consommant moins (parce que en plus comme Wamp refuse désespérément de marcher sur mon PC, je fais ca sur un mutu avec de regulier rappels à l'ordre au bout des fatidiques 30 s... :oops:
 
WRInaute impliqué
Malheureusement tu es obligé de télécharger le contenu de la page pour faire cette recherche, et quelque soit la puissance de ton script, de ton serveur ou de ta connexion, tu dépends de la vitesse du serveur sur lequel la page est hébergé.
Je te conseil cependant d'aller voir du coté des sockets php au lieux de file get content.
Il faut 200 lignes de code au lieux d'une, cependant les sockets permettent de nommer ton robot, et de télécharger la page par segments : si tu sais que l'élément que tu scan n'est présent qu'une fois tu peut stopper le téléchargement et gagner du temps.
 
WRInaute accro
Haroeris a dit:
Malheureusement tu es obligé de télécharger le contenu de la page pour faire cette recherche, et quelque soit la puissance de ton script, de ton serveur ou de ta connexion, tu dépends de la vitesse du serveur sur lequel la page est hébergé.
Je te conseil cependant d'aller voir du coté des sockets php au lieux de file get content.
Il faut 200 lignes de code au lieux d'une, cependant les sockets permettent de nommer ton robot, et de télécharger la page par segments : si tu sais que l'élément que tu scan n'est présent qu'une fois tu peut stopper le téléchargement et gagner du temps.
Nan nan je peux trouver les chaines que je cherches aussi bien au debut que tout a la fin des pages sans aucune logique particulière ...

Par contre y a t il un moyen php rapide de dire :

1 - tu fais un file get content
2 - mais tu laisses tomber si ca a pas rendu la main sous 10 s (une sorte de timeout comme on en trouve ailleurs)

Parce que mon probleme majeur est la : 10 pages vont assez vite et paf je tombe sur uen page qui mets des plombes a arriver et boum dehors ...
 
WRInaute impliqué
Essaye ca :

Code:
<?php
$ctx = stream_context_create(array(
    'http' => array(
        'timeout' => 1
        )
    )
);
file_get_contents("http://example.com/", 0, $ctx);
?>

jamais testé donc tiens moi au courant si ca marche ^_^
 
Discussions similaires
Haut