Bonjour,
Je vient enfin faire mon premier tutoriel ^^.
Le but du tutoriel c'est d'utiliser un script python pour se connecter a un site web.
Pourquoi ?
C'est quoi POST
Ont le voie ou la méthode POST ?
Pour les personnes qui ont encore un peu de mal :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Je vient enfin faire mon premier tutoriel ^^.
Le but du tutoriel c'est d'utiliser un script python pour se connecter a un site web.
Pourquoi ?
Ont va prendre un exemple, Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!, ont peut voter toutes les 2H et quand ont vote ont gagne 40 points pour chaque vote. Comme je suis un grand flemmard, j'ai fait un script python qui le fait pour moi.
C'est quoi POST
Cette méthode est utilisée pour transmettre des données en vue d'un traitement à une ressource (le plus souvent depuis un formulaire HTML). L'URI fournie est l'URI d'une ressource à laquelle s'appliqueront les données envoyées. Le résultat peut être la création de nouvelles ressources ou la modification de ressources existantes. À cause de la mauvaise implémentation des méthodes HTTP (pour Ajax) par certains navigateurs (et la norme HTML qui ne supporte que les méthodes GET et POST pour les formulaires), cette méthode est souvent utilisée en remplacement de la requête PUT, qui devrait être utilisée pour la mise à jour de ressources.
Ont le voie ou la méthode POST ?
Ont va sur Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
Ont regarde la code source de la page ( clique droit, afficher le code source de la page )
Voila, c'est toute les information qu'il faut.
Ont regarde la code source de la page ( clique droit, afficher le code source de la page )
PHP:
<form id="login" method="post" action="http://www.imperial-mt2.com/fr/index.php?p=login">
<div>
<input style="text-align:center;" type="text" class="bar" name="username" placeholder="Nom de compte" /><br />
<span class="bullet01"></span><br />
<input style="text-align:center;" type="password" class="bar" name="password" placeholder="Mot de passe" /><br />
<div class="sb-sep"></div>
<input type="submit" class="button" value="Connexion" />
Voila, c'est toute les information qu'il faut.
PHP:
# -*-coding:Latin-1 -*
import os # On importe le module os
import urllib
import urllib2
import sys, re, httplib, socket, cookielib
import time
url = 'http://www.imperial-mt2.com/fr/index.php?p=login' # URL de la page de login
# Cela sert a stocker le cookie pour eviter d'être déconecter quand ont va sur une autre page
cookie_jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
# Ont demande la login et le password
nom_utilisateur = raw_input("Entrez votre login : ")
nom_utilisateur = str(nom_utilisateur)
password_player = raw_input("Entrez votre password : ")
password_player = str(password_player)
#La requete pour le POST
values = [
('username', nom_utilisateur),
('password', password_player),
('button', 'Connexion')]
#Ont se connecte
login_form_data = urllib.urlencode(values) # Ont encode notre requête post pour qu'elle devienne username=nom_utilisateur&password=password_player&button=Connexion
opener.addheaders = [('User-agent', 'Mozilla/5.0')] # Ont utilise Mozilla
test_page = opener.open(url, login_form_data) # Ont ouvre la page web
html = test_page.read() # Ont lit la page web
#Ont verifie que l'ont est bien connecter
if re.search("<p>Vous avez entré un nom de compte ou un mot de passe incorrect.</p>",html):
print "[-] Login Failed:"
sys.exit()
else:
print "[+] Login Reussi:"
PHP:# -*-coding:Latin-1 -* import os # On importe le module os import urllib import urllib2 import sys, re, httplib, socket, cookielib import time url = 'http://www.imperial-mt2.com/fr/index.php?p=login' # URL de la page de login url_vote1 = 'http://www.imperial-mt2.com/fr/index.php?p=vote&vote=1' url_vote2 = 'http://www.imperial-mt2.com/fr/index.php?p=vote&vote=2' url_vote_valid = 'http://www.imperial-mt2.com/fr/index.php?p=vote&check=1' url_vote_top_metin = 'http://www.topmetin.com/website/in/13' # Cela sert a stocker le cookie pour eviter d'être déconecter quand ont va sur une autre page cookie_jar = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar)) # Ont demande la login et le password nom_utilisateur = raw_input("Entrez votre login : ") nom_utilisateur = str(nom_utilisateur) password_player = raw_input("Entrez votre password : ") password_player = str(password_player) #La requete pour le POST values = [ ('username', nom_utilisateur), ('password', password_player), ('button', 'Connexion')] values_top_metin = [ ('valid', 'Valider mon vote')] #Ont se connecte login_form_data = urllib.urlencode(values) # Ont encode notre requête post pour qu'elle devienne username=nom_utilisateur&password=password_player&button=Connexion opener.addheaders = [('User-agent', 'Mozilla/5.0')] # Ont utilise Mozilla test_page = opener.open(url, login_form_data) # Ont ouvre la page web html = test_page.read() # Ont lit la page web #Ont verifie que l'ont est bien connecter if re.search("<p>Vous avez entré un nom de compte ou un mot de passe incorrect.</p>",html): print "[-] Login Failed:" sys.exit() else: print "[+] Login Reussi:" k = 1 debut = time.clock() while 1: reponse2 = opener.open(url_vote1) html2 = reponse2.read() if re.search("Vous avez déjà voté sur ce topsite il y a moins de 2 heures.",html2): print "[-] Vous avez deja voter. " vote_form_data = urllib.urlencode(values_top_metin) open_top_metin = opener.open(url_vote_top_metin, vote_form_data) reponse4 = opener.open(url_vote2) html3 = reponse4.read() if re.search("Vous avez déjà voté sur ce topsite il y a moins de 1h 30 .", html3): print "[-] Vous avez deja voter. " else: reponse5 = opener.open(url_vote_valid) print "[+] Vous avez Voter", k, "fois" k = k +1 fin = time.clock() verif = fin - debut while verif < 7300: time.sleep(100) fin = time.clock() verif = fin - debut print(verif) login_form_data = urllib.urlencode(values) test_page = opener.open(url, login_form_data) fin = time.clock() - fin debut = time.clock() - debut
Pour les personnes qui ont encore un peu de mal :
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!