Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2007
Rolo Rolo is offline
Miembro
 
Registrado: ago 2007
Posts: 20
Poder: 0
Rolo Va por buen camino
Talking Validar sesión en formulario

Les cuento, un amiguete también teclas quiere hacerse un programa parecido al que pusieron ustedes para coger los enlaces de algunos sitios de video como youtube, flickr, pornotube y otros, me ha dicho que ya tiene varios pero este último le da problemas, al margen de la temática dudosa del sitio resulta curioso a modo técnico que para llegar al enlace del video antes hay que pasar una especie de filtro formulario que en apariencia tiene pocos campos: bMonth, bDay, bYear, verifyAge, submit, y le pregunta al usuario la fecha de nacimiento para asegurarse de que tiene 18 años o más y así poder entrar. El programa en teoría tiene que hacer lo mismo que un usuario, superar este formulario pasándole esos datos de manera aleatoria, sin embargo en el último campo pusieron CONTINUE », carácter que por lo visto equivale a %BB.

Después de intentar hasta yo mismo pasarle la cadena transformada al sitio durante un buen rato, hasta con referers y cookies por si los empleaba para validar parece que no hay manera de engañarle. Googleando di con este enlace de alguien que hizo algo similar en perl y parece funcionar, además mete %C2%BB como equivalente del caracter unicode »

A ver si el maestro Seoane que ayudó en lo de flickr o alguien que controle del tema, sabe como se puede solucionar el tema con este formulario y el caracter unicode de marras en delphi, nunca había visto algo parecido

Grasias por anticipado
Responder Con Cita
  #2  
Antiguo 13-09-2007
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Para poder "emular" la validación debes enviar los parámetro por POST. Los parámetro a pasar por POST son: bMonth=01&bDay=1&bYear=1970&verifyAge=true&submit=CONTINUE »

Aquí te pongo un trozo del código que realiza la validación y obtiene el HTML de una página (piensa que el código que te muestro esta hecho usando Synapse para Internet...).

Código Delphi [-]
  // start a custom http instance
  HTTP:=THTTPSend.Create;
  try
    // set the POST parameters
    WriteStrToStream(HTTP.Document, 'bMonth=01&bDay=1&bYear=1970&verifyAge=true&submit=CONTINUE »');
    // Set the Mime Type
    HTTP.MimeType := 'application/x-www-form-urlencoded';
    // Get the page html (send it as POST)
    HTTP.HTTPMethod('POST', 'http://www.pornotube.com/media.php?m=1389132');
    // if all is ok
    if HTTP.ResultCode = 200 then
      begin
        // Aqui ya podemos analizar el código HTML de la pagina! 
        // HTTP.Document --> contiene el HTML de la pagina
      end;
  finally
    HTTP.Free;
  end;
Y aquí el código exacto que uso en el xVideoServiceThief para obtener la URL del video FLV en PornoTube (añadido hoy, y disponible en la próxima actualización):
Código Delphi [-]
function TVideoDownload_PornoTube.GetVideoInformation(
  const URL: String): TVideoDownloadInfo;
const
  AGE_VALIDATION = 'bMonth=01&bDay=1&bYear=1970&verifyAge=true&submit=CONTINUE »';
  GET_FLV_INFO_URL = 'http://www.pornotube.com/player/player.php?%s';
  GET_FLV_URL = 'http://%s.pornotube.com/%s/%s.flv';

var
  Html: TStringList;
  HTTP: THTTPSend;
  VideoID: String;
  FlvID: String;
  FUserID: String;
  FDomain: String;

begin
  // clear possible prev. data
  InitTVideoDownloadInfo(Result);
  // start a custom http instance
  HTTP:=THTTPSend.Create;
  try
    // set the POST parameters
    WriteStrToStream(HTTP.Document, AGE_VALIDATION);
    // Set the Mime Type
    HTTP.MimeType := 'application/x-www-form-urlencoded';
    // Get the page html (send it as POST)
    HTTP.HTTPMethod('POST', URL);
    // if all is ok
    if HTTP.ResultCode = 200 then
      begin
        Html:=TStringList.Create;
        try
          // get the html
          Html.LoadFromStream(HTTP.Document);
          // get the video Title
          Result.Title:=CopyBetween(Html.Text, 'PornoTube.com - '</span>, <span class='quote'>'');
          Result.Title:=Copy(Result.Title, 1, Pos(' - Browsing: Videos -', Result.Title) - 1);
          // get the video ID
          VideoID:=CopyBetween(Html.Text, 'player/v.swf?v=', '"');
          // get the video Information
          HTTP.Clear;
          HTTP.HTTPMethod('GET', Format(GET_FLV_INFO_URL, [VideoID]));
          if HTTP.ResultCode = 200 then
            begin
              // get the html
              Html.LoadFromStream(HTTP.Document);
              // get the video ID
              FlvID:=CopyBetween(Html.Text, 'mediaId=', '&');
              // get the User ID
              FUserID:=CopyBetween(Html.Text, 'userId=', '&');
              // get the video domain
              FDomain:=CopyBetween(Html.Text, 'mediaDomain=', '&');
              // get the final FLV url
              Result.VideoURL:=Format(GET_FLV_URL, [FDomain, FUserID, FlvID]);
              // clear and get the final flv url
              Result.VideoURL:=URLtoAscii(Result.VideoURL);
            end;
        finally
          Html.Free;
        end;
      end;
  finally
    HTTP.Free;
  end;
end;
Saludos.

Última edición por xEsk fecha: 13-09-2007 a las 16:23:16.
Responder Con Cita
  #3  
Antiguo 13-09-2007
Rolo Rolo is offline
Miembro
 
Registrado: ago 2007
Posts: 20
Poder: 0
Rolo Va por buen camino
Smile

Muchísimas gracias xEsk
Responder Con Cita
  #4  
Antiguo 26-09-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 18
BlackDaemon Va por buen camino
Cita:
Después de intentar hasta yo mismo pasarle la cadena transformada al sitio durante un buen rato, hasta con referers y cookies por si los empleaba para validar parece que no hay manera de engañarle. Googleando di con este enlace de alguien que hizo algo similar en perl y parece funcionar, además mete %C2%BB como equivalente del caracter unicode &raquo;
Solo una correción, NO esta en "perl" esta en python

saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cronómetro en una Sesión panuweb Varios 4 19-07-2007 16:26:29
Cambiar propiedad de componente del formulario padre al cerrar el formulario hijo jzginez OOP 5 22-06-2007 21:40:51
Validar Una ContraseÑa Y Cerrar La Ventana De Inicio De Sesion TrUnkS OOP 10 28-12-2005 13:35:35
pasar datos de un formulario vista a cualquier formulario @-Soft OOP 2 28-09-2004 21:56:01
Validar active de un formulario StartKill Varios 1 31-03-2004 04:39:44


La franja horaria es GMT +2. Ahora son las 01:04:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi