Título: Petición POST con Python
Publicado por: Shell Root en 27 Octubre 2010, 06:23 am
Pues después de programar algo en C#, se me dio por realizar una petición POST por medio de Python, pero plop, algo me falla. Me ayudan? import urllib, urllib2 try: parametros = urllib.urlencode({"txtUser": "alexa", "txtPass": "a"}) peticion = urllib2.urlopen("http://localhost/PoC/index.php", parametros) print peticion.read() peticion.close() except HTTPError, e: print "Ocurrio un error" print e.code except URLError, e: print "Ocurrio un error" print e.reason
Título: Re: Petición POST con Python
Publicado por: Sancho.Mazorka en 1 Noviembre 2010, 05:00 am
Podrias poner lo que imprime e.code y e.reaseon, asi tendriamos una vision mas amplia de tu problema. Saludos, Sancho.Mazorka :P
Título: Re: Petición POST con Python
Publicado por: Sancho.Mazorka en 1 Noviembre 2010, 05:18 am
Aca te pongo 2 ejemplos que hice hace 1 año y algo, el primero es para autoclickear una web de PTC (Paid-To-Click). Hace un request a la web, descarga el captcha, lo introducis manualmente, se loguea con los datos, entra a un anuncio y listo. Esta a medio terminar, porque descubri que la web era un scam (estafa), asi que lo deje ahi nomas, pero lo que vos estas intentando hacer funciona. import httplib, urllib, re, string conn = httplib.HTTPConnection("www.alertbucks.com") #cod = urllib.urlencode({'username':'TU_USER','password':'TU_PASS','code':'458939','loginsubmit':'Login'}) #headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} #conn.request("GET", "/login.php?",cod,headers)#?username=TU_USER&password=TU_PASS&code=598423&loginsubmit=Login") #"/view.php?ad=426") #print cod, '\n\n\n' conn.request("GET","/view.php?ad=553") #params = urllib.urlencode({'': 1, 'eggs': 2, 'bacon': 0}) #headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"} #conn = httplib.HTTPConnection("musi-cal.mojam.com:80") #conn.request("POST", "/cgi-bin/query", params, headers) response = conn.getresponse() #print response.status, response.reason data = response.read() conn.close() #print data #m = re.search('(?<=")\10+', data) #print m.group(1) #print '\n-----------------------------------------\n' pattern = re.compile (';') m= pattern.split(data) print m #print string.split(m[3].strip(),'"')[1] #print string.split(m[4].strip(),'"')[1] #for i in m: # print i,'\n' #'success.php?ad=%d&code=%d&verify=1' % (ads, code)
Este otro, es muy similar al anterior, pero utilizando otro metodo import urllib,urllib2 aut_h = urllib2.HTTPBasicAuthHandler() aut_h.add_password('TU_USER') opener = urllib2.build_opener(aut_h) urllib2.install_opener(opener) #params = urllib.urlencode({'username':'TU_USER','password':'TU_PASS','code':'722443','loginsubmit':'Login'}) f = urllib.urlopen("http://www.alertbucks.com/login.php?%s" % params) print f.read() f.close()
Espero te sirva. Saludos, Sancho.Mazorka :P
Título: Re: Petición POST con Python
Publicado por: xassiz~ en 1 Noviembre 2010, 12:53 pm
Pues después de programar algo en C#, se me dio por realizar una petición POST por medio de Python, pero plop, algo me falla. Me ayudan? import urllib, urllib2 try: parametros = urllib.urlencode({"txtUser": "alexa", "txtPass": "a"}) peticion = urllib2.urlopen("http://localhost/PoC/index.php?%s", parametros) print peticion.read() peticion.close() except HTTPError, e: print "Ocurrio un error" print e.code except URLError, e: print "Ocurrio un error" print e.reason
Título: Re: Petición POST con Python
Publicado por: Shell Root en 1 Noviembre 2010, 19:27 pm
Pero eso son peticiones GET, no?
Título: Re: Petición POST con Python
Publicado por: xassiz~ en 1 Noviembre 2010, 21:05 pm
No, para una petición GET pones las variables en la URL: peticion = urllib2.urlopen("http//localhost/PoC/index.php?txtUser=alexa&txtPass=a").read()
|