Remote Posting with Snoopy
Bien.. Este es el Snoopy que todos conocen:
<-- Snoopy
Pero Existe otro Snoopy Menos conocido que puede ser la solución a las dudas de muchos para hacer "Remote Posting". y en este minitutorial se los presento y muestro como manejarlo de forma breve:
-¿Qué es Snoopy.class.php?
Snoopy Class es una clase de Php que Emula a un navegador Web. De entrada es obvio que existen muchas formas de sacarle provecho a un Emulador de WebBrowser en Php segun sea la creatividad de cada uno y las habilidades de programación que se tengan. Pero por el momento nos ocuparemos unicamente del "Remote Posting":
- ¿Qué es el Remote Posting?
Posteo Remoto... Es decir... Llenar campos de formularios que se encuentran en una pagina web cualquiera (que no sea desde la cual ejecutamos el script por que eso no tendria sentido.. ) y enviarlos.
- Comandos Básicos de Snoopy:
-fetch($URL): Carga la pagina Web Especificada.
-fetchtext($URL): Hace lo mismo que el anterior, pero devuelve el texto de la página.
-fetchform($URL): Igual que el primero, pero sólo devuelve elementos de formularios presentes en la pagina.
-fetchlinks($URL): Igual que el primero, pero devuelve sólo los enlaces de una página
-submit($URL,$VariableDeFormulario): Envia datos a un formulario y emula un evento Submit
-submittext($URL,$VariableDeFormulario): Igual que el anterior, pero sólo devuelve textos, eliminado etiquetas HTML y demás: código irrelevante
-submitlinks($URL): Igual que submit, pero sólo se trae los enlaces de una página.
- Variables de Clase Snoopy:
$proxy_host Definir un HTTP Proxy Host
$proxy_port Definir el puerto para el proxy HTTP
$agent Definir User Agent (El Browser como el cual se presentara Snoopy)
$referer Definir la variable de entorno referer (la pagina que nos envio a la pagina a la que estamos arrivando)
$cookies La caja de cookies de Snoopy
$rawheaders HTTP-Header Information
$maxredirs Definir un numero maximo de redireccionamientos .
$user Definir un HTTP-Authentication User Name
$pass Definir un HTTP-Authentication User Password
$accept HTTP-Accept Type Default: (image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*)
$error Si algo va mal aca se guarda el "Log."
$response_code Aca se leen las HTTP-Responses
$headers Definir o modificar las cabeceras
$maxlength Definir un tamaño maximo para las respuestas recibidas
$read_timeout Socket Timeout. Cunado esta a 0 es tiempo ilimitado
$timed_out Definir el Timeout para una operacion.
$maxframes Definir número maximo de Frames que se aceptan
$status HTTP Status der fetch Methode(n)
$temp_dir Definine un directorio Temporal para nuestro web Browser
$curl_path El pad para curl si esta disponible.
- Utilizando Snoopy:
-Inicializando a Snoopy:
Código:
<? Php
include "snoopy.class.php"; // Incluimos la clase nuestro Script
$snoopy = new Snoopy; // Creamos un nuevo Snoopy ;)
?>
- Obteniendo todo el contenido de una pagina y mostrandolo:
Código:
<? Php
$snoopy->fetchtext("http://www.loquesea.net/");
print ($snoopy->results);
?>
- Obteniendo todos los Links de una pagina y mostrandolos:
Código:
<? Php
$snoopy->fetchlinks(\"http://www.google.com/search?hl=es&q=XXX&btnG=Buscar&lr=");
print ($snoopy->results);
?>
- REMOTE POSTING :
Código:
<? Php
// La pagina donde se encuentra el Form a rellenar
$submit_url = "http://Lapagina-dondePostearemos.html";
//Definimos los valores de las Variables a Postear
$submit_vars[\"q\"] = \"amiga\";
$submit_vars[\"submit\"] = \"Search!\";
$submit_vars[\"searchhost\"] = \"Altavista\";
$snoopy->submit($submit_url,$submit_vars);
//Mostramos los resultados
print ($snoopy->results);
?>
- Donde consigo a Snoopy? :
-->Descargar Snoopy desde SourceForge<--
Bueno creo que con esto ya es suficiente explicación para que puedan utilizar Snoopy en sus proyectos y puedan hacer "Remote Posting". Las Posibilidades de lo que se puede hacer son muchas (bots, sistemas para postear en blogs, etc) todo depende del ingenio de cada uno y de las habilidades que se tengan para programar.
Att. Otto VanHackman
Comentarios y agradecimientos serán bien recibidos
(y determinates para la realización de futuros aportes... )