Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1305 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  requests web, automatisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

requests web, automatisation

n°2302773
Lolight
Posté le 03-07-2017 à 11:50:49  profilanswer
 

Bonjour,
 
Je viens vers vous car je suis embêté et je recherche une solution sur un petit soft en py.
Mon objectf est de créer un robot simple qui va aller se connecter sur un site et se rendre sur une page de vote puis cliquer sur un bouton.
 
Je bloque un peut sur une partie bien précise.
J'arrive à me connecter au site avec une requete POST (lib requests)
Mais je sais pas comment m'y prendre pour cliquer sur le bouton.
 
Quand je le fais manuellement, je me log(POST), je me rends sur la page du bouton en question (GET) et j'appuis sur le bouton (??). De plus un jeton est généré du coup j'ai l'impression que je peux pas avoir un lienx fixe à entrer en dur dans le code.
 
Je précise qu'actuellement je suis débutant et j'aimerais avoir quelques chose d'assez basique mais fonctionnel avant d'améliorer ça avec des fonction qui rendrons le code plus propre.
 
Pour info le code du bouton sur lequel mon programe doit appuyer est le suivant :

Code :
  1. <button class="vote-button" onclick="window.open('https://www.paragon-servers.com//p/vote/294a0ef4165201144d304ac24f192defa');">Voter&nbsp;&nbsp;&nbsp;[ID:18C33732]</button>


 
De ce code je comprends que dès qu'un clic est fait, ça ouvre une fenetre avec le lien.
Du coup c'est plutôt simple mais si le liens change, ce qui je pense est le cas, ça veux dire que je doit automatiser la découpe du code du site pour récupérer le bon lien à chaque fois que mon robot votera ?  
 
EDIT : Après vérification le code change, il faut donc que je découpe la page et que j'isole le liens en question.
EDIT 2 : J'ai trouvé comment extraire mes URL de façon dynamique  

Code :
  1. aa = os.system('cat vote3.txt | grep \"window.open\" | awk -F "\'" \'{ print $2 }\' | sed -n \"2 p\"')


 
Merci  :jap:


Message édité par Lolight le 03-07-2017 à 14:42:19

---------------
--- Mon topik d'Ach/Ven ---
mood
Publicité
Posté le 03-07-2017 à 11:50:49  profilanswer
 

n°2302789
zeuth
Posté le 03-07-2017 à 14:33:12  profilanswer
 

Salut,
 
J'ai fais à peu prés la même chose avec la bibliothèque twill sous Python


---------------
Feedback http://forum.hardware.fr/hfr/Achat [...] 6378_1.htm
n°2302792
Lolight
Posté le 03-07-2017 à 15:20:23  profilanswer
 

Merci je vais jetter un oeil ce soir :)
 
Je sens que je me rapproche du but.
J'ai du mal à rediriger ma sortie os.system vers une variable.
Je continue de creuser.


---------------
--- Mon topik d'Ach/Ven ---
n°2302800
Lolight
Posté le 03-07-2017 à 16:23:21  profilanswer
 

Bon, je suis toujours proche de la solution mais des truc qui m'embêtent.
Dans mon programe quand je fais un GET j'enregiste la page dans un fichier.
Ensuite, je fais des test sur les fichier que j'ai bien la page demandée.
 
Par exemple, avec ce bout de code, je vérifie que je suis loggué :  

Code :
  1. def trueConnect(arga, argb) :
  2.     print("Vérification de la connexion" )
  3.     TEST = os.system('cat pageCo | grep "Mot de passe perdu"')
  4.     if TEST == "" :
  5.      blablabla
  6.     elif TEST != "" :
  7.      blablabla
  8.     else :
  9.      bla


 
Ici je regarde si  près mon post j'ai toujours le "mot de passe oublié" qui apparais quand je suis pas loggué. Mais ma fonction marche pas.
J'ai regardé ce que j'avais dans la variable TEST et j'ai 0.
Je comprends pas pourquoi.
 
De plus sur internet j'ai vu que certain utilisais os.system / os.popen / subprocess
:/


---------------
--- Mon topik d'Ach/Ven ---
n°2302801
zeuth
Posté le 03-07-2017 à 16:39:45  profilanswer
 

Utilise twill.. ca emule un navigateur web
J'étais exactement dans ton cas et j'ai finis par utiliser twill


---------------
Feedback http://forum.hardware.fr/hfr/Achat [...] 6378_1.htm
n°2302805
Lolight
Posté le 03-07-2017 à 17:24:05  profilanswer
 

zeuth a écrit :

Utilise twill.. ca emule un navigateur web
J'étais exactement dans ton cas et j'ai finis par utiliser twill


 
Bon du coup, à force de me casser les fents, j'a finis pas abandoner pour essayer Twill.
Et bin moi qui penssais prendre du temps à apprendre son fonctionnement c'est ultra simple et en 5 minute je me suis rendu plus ou moin au même endroit que mon programme. Merci d'avoir insisté !
 
Juste une question, pour mon vote j'ai deux button à submit mais ils ont le même nom.
 

Code :
  1. Form #1
  2. ## ## __Name__________________ __Type___ __ID________ __Value__________________
  3. 1  1  None                     submi ... (None)
  4. 2  2  None                     submi ... (None)


 
Comment faire ? Je sais qu'a l'écran ces button affiche un texte différent avec un ID mais seulement en graphique.
Je me demande si c'est pour éviter les robots justement ..
 
EDIT : J'ai finis par trouve la doc (http://twill.idyll.org/commands.html) ce qui m'a bien aidé !
Du coup j'ai trouvé le submit 1 et submit 2, ça passe sans erreur mais je suis sur que ça a pas voté parce que mon compteur ne s'es pas incrémenter.
Je vais continuer de chercher, je suis sur la voie :p
 [:aleste314]


Message édité par Lolight le 03-07-2017 à 17:37:56

---------------
--- Mon topik d'Ach/Ven ---
n°2302897
Lolight
Posté le 05-07-2017 à 08:28:32  profilanswer
 

In finé je m'en sort pas avec ces deux boutons "submi".
J'ai pourtant essayé "submit 1" et "submit 2", sur le papier ça fonctionne mais dans la réalitée non :'(
 
https://image.prntscr.com/image/Ky4ySwG2RaKLTkon8QJ4TA.png


Message édité par Lolight le 05-07-2017 à 08:31:45

---------------
--- Mon topik d'Ach/Ven ---
n°2302925
zeuth
Posté le 05-07-2017 à 16:17:05  profilanswer
 

T'es sur que c'est pas limité à un vote / jour avec la même adresse IP ?


---------------
Feedback http://forum.hardware.fr/hfr/Achat [...] 6378_1.htm
n°2302926
Lolight
Posté le 05-07-2017 à 16:47:13  profilanswer
 

Le fonctionnement est le suivant :  
 - 1 vote possible sur chaqu'un des boutons tout les deux heures.
 - Peut importe l'IP, si je j'appuis sur chacun des deux bouton et que je change d'IP j'aurais toujours un cooldown de 2 heures et mon compteur s'incrémentera de 2.
 
Quand j'ai fais les essai, je pouvais voter (pas de CD) et après avoir voté, j'aurais du avoir un CD de 2heures apparaitre et mes point augmenter de deux.
Mais rien de tout ça n'es apparus. :/
 
Se qui m'intrigue c'est que dans twill je vois pas de valeurs sur les boutons alors que quand je suis sur le site j'ai des valeurs :
https://image.prntscr.com/image/5MsX4is7Q66GxoAYSLPzPQ.png
 
J'ai essayé de set des valeurs aux boutons mais comme je m'en doutais c'est pas possible.
 
J'ai essayé de set des valeurs aux boutons mais comme je m'en doutais c'est pas possible.


Message édité par Lolight le 05-07-2017 à 16:48:49

---------------
--- Mon topik d'Ach/Ven ---
n°2302927
zeuth
Posté le 05-07-2017 à 16:50:59  profilanswer
 

Donne voir le lien pour qu'on puisse voir
 
Sachant que moi par exemple, je me log avec twill, une fois loggé je continue avec d'autres librairie ;-)


Message édité par zeuth le 05-07-2017 à 16:51:38

---------------
Feedback http://forum.hardware.fr/hfr/Achat [...] 6378_1.htm
mood
Publicité
Posté le 05-07-2017 à 16:50:59  profilanswer
 

n°2302928
Lolight
Posté le 05-07-2017 à 17:04:10  profilanswer
 

Yes, du coup je te donne mon code.

Code :
  1. go https://www.paragon-servers.com/p
  2. formvalue 1 pseudo acrooo
  3. formvalue 1 pass acrooo
  4. submit
  5. go https://www.paragon-servers.com/p/vote
  6. submit 1
  7. submit 2


 
J'ai un code un peut plus évolué en python mais bon avec twill c'est quand même bien plus simple.
Dedans je récupérais le code de la page de vote et je la découpais pour sortir les liens des boutons.
Et après j'aurais fais un get sur le lien.  
 
A voir pour utiliser une autre lib si twill ne permet pas de cliquer ces bouttons.
 
(j'avais pas d'imagination pour les credentials) [:lolight]  


---------------
--- Mon topik d'Ach/Ven ---
n°2303007
zeuth
Posté le 06-07-2017 à 16:42:45  profilanswer
 
n°2303008
Lolight
Posté le 06-07-2017 à 17:01:57  profilanswer
 

Nul besoins de m'y rendre en fait.
Le compteur s'incrémente une fois que tu a pressé le bouton voter.
Si tu check le code de la parge il te redirige vers un liens qui lui te redirige ensuite vers les deux site en question. Et en fait c'est le petit liens qui fais la redirection qui est chargé d'incrémenter le compteur et de valider ton vote.  
Enfin c'est comme ça que j'ai compris la chose.  :o  
 
HS ON
Et je n'ai aucun intérêt réel à aller vraiment voter.  
Surtout que ce mode de vote est complètement malsain vu qu'il est basé sur des rewards.
Et je suis moi même encore plus malsain vu que je prends le beure, l'argent du beure et la crémière.  :lol:  
HS OFF
 
Pile l'étape qui me pose problème  :pt1cable:  
 
Merci t'es reponses  :jap:


---------------
--- Mon topik d'Ach/Ven ---

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  requests web, automatisation

 

Sujets relatifs
Automatisation de bases de donnéesAutomatisation fichier excel avec VBA
Automatisation d'un script PHP avec CRONautomatisation de tâches
Automatisation des sprites avec Gulp / GruntAutomatisation avec curl
Automatisation de formulaire PDFProblème d'automatisation publipostage vba
automatisation de connexion sans ssh sous unixScript d'automatisation de tache
Plus de sujets relatifs à : requests web, automatisation



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR