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
Podrias poner lo que imprime e.code y e.reaseon, asi tendriamos una vision mas amplia de tu problema.
Saludos, Sancho.Mazorka :P
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
Cita de: 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?%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
Pero eso son peticiones GET, no?
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()