requests web, automatisation

requests web, automatisation - Python - Programmation

Marsh Posté le 03-07-2017 à 11:50:49    

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 ---
Reply

Marsh Posté le 03-07-2017 à 11:50:49   

Reply

Marsh Posté le 03-07-2017 à 14:33:12    

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


---------------
Vente LBC : https://www.leboncoin.fr/profil/9dd [...] 2b4/offres
Reply

Marsh Posté le 03-07-2017 à 15:20:23    

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 ---
Reply

Marsh Posté le 03-07-2017 à 16:23:21    

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 ---
Reply

Marsh Posté le 03-07-2017 à 16:39:45    

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


---------------
Vente LBC : https://www.leboncoin.fr/profil/9dd [...] 2b4/offres
Reply

Marsh Posté le 03-07-2017 à 17:24:05    

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 ---
Reply

Marsh Posté le 05-07-2017 à 08:28:32    

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 ---
Reply

Marsh Posté le 05-07-2017 à 16:17:05    

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


---------------
Vente LBC : https://www.leboncoin.fr/profil/9dd [...] 2b4/offres
Reply

Marsh Posté le 05-07-2017 à 16:47:13    

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 ---
Reply

Marsh Posté le 05-07-2017 à 16:50:59    

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

---------------
Vente LBC : https://www.leboncoin.fr/profil/9dd [...] 2b4/offres
Reply

Marsh Posté le 05-07-2017 à 16:50:59   

Reply

Marsh Posté le 05-07-2017 à 17:04:10    

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 ---
Reply

Marsh Posté le 06-07-2017 à 16:42:45    

Reply

Marsh Posté le 06-07-2017 à 17:01:57    

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 ---
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed