Captcha en Pordede

Captcha en Pordede
Mensaje por tormund » 24 Mar 2017, 19:26
Re: Captcha en Pordede
Mensaje por Cmos » 24 Mar 2017, 20:07
Hace un tiempo, para otra web que pedía el captcha al mostrar los enlaces, estuve probando con ello y después de varios intentos cuando estaba cerca de conseguirlo lo que pasó es que ya el captcha no pedía la comprobación de "No soy un robot", sino que también pedía lo típico de señalar las imágenes... En teoría sería posible emularlo e incluso mostrar una ventana con las imágenes cuando las pida (aunque esto solo serviría para Kodi probablemente), pero es un jardín de los grandes donde yo ni me asomaría

Publicidad
Re: Captcha en Pordede
Mensaje por tormund » 24 Mar 2017, 23:10
Tengo varias dudas del proceso:
- He llegado a llamar a la primera URL pero me devuelve el JSON con todo a null. Creo que me falta el Referer pero el que envía el navegador tiene un parámetro que no sé de donde lo obtiene: v=r20170320152239. Imagino que será un parámetro que debo capturar pero no sé de dónde.
- Si no pide captcha, ¿qué debería enviar a Pordede para que valide el login?¿Capturando la cookie de que envíe Google?
- Si pide captcha, ¿cómo podría capturar la respuesta del usuario al pulsar sobre la image?
Como me has dicho que estuviste probando un bypass para el captcha quizá me puedas orientar para, al menos, intentar conseguir algo.
Saludos.
Re: Captcha en Pordede
Mensaje por Cmos » 25 Mar 2017, 01:40

Por lo tanto la única manera es resolviendo el captcha de imágenes. El problema es que hay que montar un sistema de botones donde el usuario pinche sobre el trozo/trozos de imagen correcta, y puede ser que haya que hacerlo varias veces hasta que el recaptcha se quede tranquilo xD
Bien, este es el código en sucio que tenía, ligeramente modificado para adaptarlo a pordede. A este código le faltan varias partes, porque no llegué tan lejos, pero como verás no es tan sencillo como encadenar dos o tres llamadas a diferentes urls, ojalá

Código: Seleccionar todo
import base64, time
from core import httptools
url_login = "http://www.pordede.com/site/login"
data = httptools.downloadpage(url_origin).data
api_js = httptools.downloadpage("http://www.google.com/recaptcha/api.js?hl=es").data
a = scrapertools.find_single_match(api_js, 'po.src = \'(.*?)\';')
version = a.split("/")[5]
key = scrapertools.find_single_match(data, 'data-sitekey="([^"]+)"')
co = base64.b64encode('http://www.pordede.com:80').replace("=", ".")
headers= {"User-Agent": "Mozilla/5.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Referer": "https://www.google.com/recaptcha/api2/demo/",
"Accept-Language": 'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3'}
params = "k=%s&hl=es&v=%s&co=%s&cb=418nrq4cd5m&size=normal" % (key, version, co)
url = "https://www.google.com/recaptcha/api2/anchor?%s" % params
data = httptools.downloadpage(url, headers=headers, replace_headers=True).data
token = scrapertools.find_single_match(data, 'id="recaptcha-token" value="([^"]+)">')
params = "k=%s&hl=es&v=%s&bg=!A&c=%s" % (key, version, token)
headers["Referer"] = url
data = httptools.downloadpage("https://www.google.com/recaptcha/api2/frame?%s" % params, headers=headers, replace_headers=True).data
data = data.decode("unicode-escape")
token = scrapertools.find_single_match(data, '"rresp","([^"]+)"')
params2 = "k=%s&c=%s" % (key, token)
url_imagen = "https://www.google.com/recaptcha/api2/payload?%s" % params2
# Esta es la url de la imagen (puede haber varias)
# Desde aqui encapsular con un while
# captcha_response = resolver_captcha()
# Ejemplo de respuesta: [[5,9]] - Recuadro 5 y 9
# response = base64.b64encode('{"response":"%s" % captcha_response}')
url = "https://www.google.com/recaptcha/api2/userverify?k=%s" % key
time1 = int(round(time.time() * 1000)) - int(round(time.time() * 1000))
post = "v=%s&c=%s&response=%s&t=%s&ct=%s&bg=!A" % (version, token, response, time1, time1)
headers["Referer"] = "https://www.google.com/recaptcha/api2/frame?k=%s&hl=es&v=%s" % (key, version)
data = httptools.downloadpage(url, post, headers=headers, replace_headers=True).data
# Si en este data se devuelve un string bgdata, hay que volver a sacar una nueva imagen
result = scrapertools.find_single_match(data, '"uvresp","([^"]+)"')
post = "LoginForm[username]="+config.get_setting("pordedeuser", "pordede")+"&LoginForm[password]="+config.get_setting("pordedepassword", "pordede")
post += "&LoginForm[verifyCode]=%s&g-recaptcha-response=%s" % (result, result)
data = httptools.downloadpage(url_login, post, add_referer=True)
Por mi parte yo intentaré mirarlo cuando tenga tiempo pero no sé si la cosa saldrá bien...
Re: Captcha en Pordede
Mensaje por Cmos » 25 Mar 2017, 14:35

He colgado los archivos en el subforo de pelisalacarta, por si quieres echarles un ojo y te sirven para portarlo a java que es donde imagino quieres usarlo

- Ayuda sobre plugins
- ↳ tvalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ pelisalacarta (For Italian users)
- ↳ Problemi (Non mi funziona...)
- ↳ Domande (Come fare a...)
- ↳ Suggerimenti (Sarebbe bello che...)
- ↳ mywebtv
- ↳ Problemas (no me funciona...)
- ↳ Preguntas (cómo se hace...)
- ↳ Sugerencias (estaría bien que hubiera...)
- ↳ MediaExplorer
- ↳ Balandro
- ↳ Otros plugins
- ↳ Alfa
- ↳ Alfa (For Italian users)
- ↳ Tutoriales
- Ayuda sobre mediacenters
- ↳ XBMC / Kodi
- ↳ Plex
- ↳ Android
- ↳ Raspberry Pi
- ↳ Boxee
- ↳ WiiMC
- ↳ Enigma 2
- ↳ Otros media center
- Sugerencias
- ↳ Nuevos canales
- ↳ Mejoras
- Desarrolladores
- Comunidad
¿Qué es Mi media center?
Este es el foro oficial de soporte para pelisalacarta, tvalacarta y mywebtv.
También es un lugar para compartir tus experiencias con dispositivos multimedia y software media center, puede que encuentres algo interesante que ni siquiera sabías que se podía hacer.
Primeros pasos en Kodi
Si estás empezando con Kodi, o si estás interesado en sacarle más partido, puedes echar un vistazo a esta colección de video-tutoriales.
Aprenderás a crear y optimizar tu biblioteca, a instalar add-ons, a buscar subtítulos...
Cómo reportar un problema
Si tienes un problema en alguno de los plugins y quieres reportarlo, no olvides incluir el log.
Para que resulte útil tienes que activar la opción de "log completo" en el plugin, luego reiniciar Kodi y dar los pasos necesarios hasta que se produzca el problema.
Luego copia tu fichero de log, siguiendo las instrucciones que se describen en este enlace, e inclúyelo al final de la descripción de tu problema.
Aprende a programar para Kodi
Si sabes programar, esta serie de tutoriales que describen paso a paso cómo desarrollar tu propio add-on para Kodi.
Y si quieres añadir tus propios canales a pelisalacarta también te contamos paso a paso cómo hacerlo en este enlace.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 12 invitados