IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

Débutant : Créer un bot


Sujet :

Modules Perl

  1. #1
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut Débutant : Créer un bot
    Bonjour à tous !!

    Voilà. je n'ai encore jamais touché à perl ( ça commence bien, je sais ), mais j'ai un bon background en programmation (J'ai débuté par du C++ durant mes études)
    J'ai parcouru la faq Perl du site, qui est bien rédigée car il me semble avoir bien compris les fondements du langage.

    Maintenant, voici ce que j'aimerai effectuer :

    Créer un script bot (avec Mechanize je pense) qui me permette de visiter des pages web en passant par un proxy.

    Un script de proxy devrai se connecter en utilisant une liste de proxys accessibles (et supprimer de la liste les proxys ne fonctionnant plus)

    Le script bot doit pouvoir se connecter à une page via le proxy choisi, puis simuler des clicks sur des liens en tant que sous-processus. Donc que la simulation fasse penser sous-processus qu'un utilisateur s'est connecté au site A (processus) et qu'il a clické sur le un lien de ce site A pour arriver au site Z. En gros, passer pour un visiteur venant d'un site précis par exemple.

    Le script de bot pourrait être configurable pour aller sur différentes pages à de multiples reprises en utilisant un proxy différent à chaque fois...

    par exemple aller 100 fois sur le site A en 5h, aller 500 fois sur le site B en 24h, etc...

    J'ai trouvé différents tutoriaux assez intéressants sur l'utilisation de Mechanize, mais par contre assez peu de choses sur Proxy.
    De même, étant totalement débutant, je ne vois pas encore trop comment imbriquer toutes ces contraintes en une seule et même "application"...

    Si vous avez des suggestions, des liens intéressants, des bouts de code, ça me serait bien utile

    Merci d'avance !!

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Avant de te lancer plus avant dans le projet, je te recommande de lire TRES ATTENTIVEMENT les conditions d'utilisation des services tant des proxies que tu veux utiliser, que des sites visés par tes "clics".

    En effet, de nombreux services désapprouvent totalement l'usage de bots pour accéder à leurs ressources. Lorsqu'ils découvrent le pot-aux-roses, leur réaction peut aller de la simple fermeture de l'accès à la ressource, jusqu'au dépot de plainte (cas des sites et régies publicitaires, de l'argent étant en jeu car l'automatisation est une escroquerie).

    Passé cet éclaircissement, Mechanize est une solution, tout comme LWP::UserAgent ...

    Pour ce qui est de l'usage des proxies, il me semble que c'est transparent, normalement ? Non ?

    Quoiqu'il en soit, LWP supporte la configuration d'un proxy à utiliser pour passer sa requête.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    Hello 2Eurocents,

    Tout d'abord, merci pour tes contributions dans la Faq, elles me seront bien utiles je pense


    Concernant l'utilisation, la personne qui m'a demandé de créer ce robot ne m'a pas réellement expliqué à quoi il servirait, mais seulement son fonctionnement... Je soupçonne une utilisation malsaine, mais lui m'a certifié que non. En gros je ne suis qu'une compétence qui va tenter de développer un outil. Et bien que le fait de ne rien connaître à perl soit un obstacle, je suis intéressé à m'y frotter un peu, voire peut-être même beaucoup

    Quelques petites questions tout d'abord :

    A propos de Mechanize : est-ce qu'un appel à une url, puis via le même objet, un appel à une seconde url va simuler que le premier à passé par la première url ? est-ce que c'est automatiquement considéré comme un sous-processus, ou bien est-ce qu'il faut coder spécifiquement cette contrainte ?

    A propos des taches : qu'est ce que j'aurai intérêt à faire pour automatiser ces taches ? J'ai pensé à un fichier txt ou xml qui va contenir une liste sous forme arborescente. par exemple :

    www.a.com 5-10h 100
    - www.b.com
    -- www.c.com
    -- www.d.com

    www.e.com 0-24h 500
    - www.f.com
    -- www.g.com
    -- www.h.com

    etc... environ 20 arborescence avec en moyenne 1 ou 2 sous-processus et 2 ou 3 sous-processus

    Je peux donc savoir quels sont les processus, durant quelles heures ils doivent être lancés, et combien de fois.
    Par contre, je ne vois pas vraiment comment automatiser le tout... est-ce que j'aurai intérêt à placer un crontab qui lance le script par exemple toutes les minutes ? ou avoir un controlleur qui tourne en permanence et calcule selon date et heure à chaque fois qu'il doit lancer un processus ?? mais à ce moment là est-ce qu'il faudrai utiliser des threads pour séparer les processus ?? avoir un script de lancement pour chaque arborescence ?

    Est-il également possible de "temporiser" les appels ?? par exemple donner l'impression de rester 2 minutes sur un site avant de passer au sous-processus (simulation de click sur un lien pour appeler une autre page) ?

    En gros, suffit de répondre oui/non, et peut-être donner un mot-clé ou une url qui va bien et ça m'avancerai déjà pas mal




    Pis maintenant, ma grande interrogation, c'est justement un peu au niveau du "controlleur"...
    Actuellement, je ne vois pas du tout comment je pourrai "imbriquer" ces différents éléments ensemble... est-ce que cette logique serait cohérente :

    Controlleur :
    1. récupère la liste des proxys disponibles
    2. charge la liste des arborescences et la traite pour récupérer les infos disponibles
    3. lance une boucle (?? ça se fait comment ?? un truc du genre while( 1 ){} ou bien ça serait bien trop gourmand en ressources ?)
    4. dans la boucle :
    a. récupération date/heure courante
    b. test si on doit lancer un processus (traiter une arborescence)
    i. si oui, on instancie une classe qui va traiter le processus avec la classe Mechanize

    Dans cette classe Mechanize :
    1. instanciation de la classe proxy et on lui passe un proxy disponible parmi la liste du controlleur.
    2. Instanciation d'un objet Mechanize qui va traiter les appels consécutifs




    Voilà... Désolé si j'ai fait un pavé, j'espère que ça n'aura pas été trop long à lire.

    Merci d'avance pour ton aide précieuse dans mes balbutiements en perl

  4. #4
    Membre actif Avatar de scaleo
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 327
    Points : 219
    Points
    219
    Par défaut
    Ton script me parait suspect la personne qui ta demandé de coder le bot n'aurais pas un site financer par des pub Adsence ?
    Vista powaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ::

  5. #5
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    Comme je l'ai expliqué, je ne sais pas quelle est l'utilité qu'il va en faire, et à la limite, peu m'importe. Je soupçonne qu'il veuille l'utiliser soit pour des pubs google ou d'autres systèmes du même genre, mais vu ses explications, ça aurai plutôt l'air d'être une manière pour augmenter ses visiteurs... Je n'y crois pas trop, le système du double-click étant bien connu... Mais pour moi ce qui est intéressant c'est d'essayer d'appréhender un nouveau langage tel qu perl pour arriver à mon but...

    Donc je vais tenter, et on verra bien. Tiens... est-ce que, en tant que développeur, je pourrais également avoir des ennuis pour avoir fourni un script qui transforme une automatisation en escroquerie ?

    a+


    PS : je cherche toujours réponses à mes questions

  6. #6
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    un début de réponses à ta dernière question: http://www.01net.com/editorial/27584...raude-au-clic/

    Sinon pour le reste tu comprendras facilement que personne ne veuille t'aider à faire des choses frauduleuses. Si tu n'a aucun scrupule à le faire, ça te regarde; mais ce n'est pas forcément le cas de tout le monde.
    Perso si j'avais été modo sur ce site j'aurai même locké ton post, pour éviter tout risque pour le site.

  7. #7
    Membre averti Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Points : 356
    Points
    356
    Par défaut
    Comme je l'ai expliqué, la finalité pour moi n'est pas d'escroquer qui que ce soit, et si on commence dans ce genre de logique, alors il ne faudrai bosser pour personne, les entreprises étant toujours à se faire de l'argent sur le dos des particuliers, les patrons à s'enrichir au dépends de leurs employés, etc...

    J'ai été franc, j'ai expliqué le topo comme on me l'avait donné. Mon "client" ne m'ayant pas dis l'utilisation finale de la chose, je ne vais pas commencer à faire son procès parce que je ne sais pas exactement à quoi va servir mon développement... Si il veut escroquer des gens, c'est son problème, pas le mien. Il finira surement par se faire avoir et ça lui fera les pieds. Mon but était plutôt de pouvoir mettre un pied dans le monde Perl grace à un projet qui me semblait intéressant en matière de développement.

    J'aurai pu présenter le truc différement sans toutes ces explications concernant la finalité du concept, mais j'ai préférer les dires comme elles sont...
    Mais bon, comme le dit BigNic, c'est peut-être normal qu'on ne veuille pas trop m'aider, désolé pour le dérangement, vous pouvez clore le thread, j'essayerai par moi-même.

    Cordialement,

    titouille

  8. #8
    Membre actif Avatar de scaleo
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 327
    Points : 219
    Points
    219
    Par défaut
    Masi non fuit pas , moi j'veut bien te filer un coupe de main


    Regarde du coté de LWP::UserAgent, pour la liste des taches sa doit être possible avec un fichier xml.

    Fait un premier code avec LWP
    Vista powaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ::

  9. #9
    Membre habitué Avatar de BigNic
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 195
    Points : 154
    Points
    154
    Par défaut
    Citation Envoyé par titouille
    Comme je l'ai expliqué, la finalité pour moi n'est pas d'escroquer qui que ce soit, et si on commence dans ce genre de logique, alors il ne faudrai bosser pour personne, les entreprises étant toujours à se faire de l'argent sur le dos des particuliers, les patrons à s'enrichir au dépends de leurs employés, etc...
    N'exagéront rien, je parlais seulement de participation à une entreprise plus ou moins légale.

    Citation Envoyé par titouille
    J'ai été franc, j'ai expliqué le topo comme on me l'avait donné. ....
    J'aurai pu présenter le truc différement sans toutes ces explications concernant la finalité du concept, mais j'ai préférer les dires comme elles sont...
    C'est vrai, cela ne fait que t'honorer.


    Citation Envoyé par titouille
    désolé pour le dérangement
    Ben en fait perso je pense pas qu'il y en ai vraiment. C'est ce qui est bien avec les forums, personne n'est obligé de te lire, personne n'est obligé de te répondre. Et s'il les personnes le font, à eux d'en assumer les conséquences. Au bémol près, que certains site on été fermés à cause de propos tenus dessus.

    Citation Envoyé par titouille
    vous pouvez clore le thread, j'essayerai par moi-même.
    ne nous emballons pas je ne faisait qu'exprimé un avis, que personne ne m'avait demandé.


    Citation Envoyé par titouille
    Cordialement,
    tous aussi cordialement,
    Nicolas.

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo