Remote Posting with Snoopy
Bien.. Este es el Snoopy que todos conocen:
(http://images.quizilla.com/B/brittstar/1045285064_snoopy_big.gif) <-- 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.. :P) 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:
<? 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:
<? Php
$snoopy->fetchtext("http://www.loquesea.net/");
print ($snoopy->results);
?>
- Obteniendo todos los Links de una pagina y mostrandolos:
<? Php
$snoopy->fetchlinks(\"http://www.google.com/search?hl=es&q=XXX&btnG=Buscar&lr=");
print ($snoopy->results);
?>
- REMOTE POSTING :
<? 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<-- (http://sourceforge.net/projects/snoopy)
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... :¬¬) ;)
CitarSnoopy 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 cr
Pues para eso tenes cURL ;)
Cita de: Ing_Amc en 12 Enero 2008, 12:17 PM
CitarSnoopy 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 cr
Pues para eso tenes cURL ;)
Pues io creo que esa clase solo encapsula las funciones Curl , es lo mas logico de todas formas les servira ah algunos que recien empiezan o que aun no hayan creado su propia clase Curl.
Saludos
Cita de: Ing_Amc en 12 Enero 2008, 12:17 PM
CitarSnoopy 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 cr
Pues para eso tenes cURL ;)
Lo que Puedes hacer con Curl y lo que puedes hacer con Snoopy son cosas totalmente diferentes... :¬¬
Incluso puedes utilizar Curl Desde Snoopy... :P
Citar
$curl_path El pad para curl si esta disponible
Hay que poner más atencion a las cosas y no hablar sin estar serguro de lo que se dice... :¬¬
Cita de: Otto VanHackman en 13 Enero 2008, 04:11 AM
Cita de: Ing_Amc en 12 Enero 2008, 12:17 PM
CitarSnoopy 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 cr
Pues para eso tenes cURL ;)
Lo que Puedes hacer con Curl y lo que puedes hacer con Snoopy son cosas totalmente diferentes... :¬¬
Incluso puedes utilizar Curl Desde Snoopy... :P
Citar
$curl_path El pad para curl si esta disponible
Hay que poner más atencion a las cosas y no hablar sin estar serguro de lo que se dice... :¬¬
Creo que la persona que tiene que leer es otra.. cURL hace exactamente lo mismo que tu clase...
Cita de: Ing_Amc en 13 Enero 2008, 08:43 AM
Creo que la persona que tiene que leer es otra.. cURL hace exactamente lo mismo que tu clase...
Eeee... sutilmente: NO.
Y lo digo por que se manejar ambas cosas a la perfección. (has usado Snoopy alguna vez??)
Pero como no creo extenderme a sacar un listado de diferencias para comprobar por que no son la misma cosa (ya que con el post inicial se ve), me limito a dejar una pregunta retorica:
Alguien noto que dije esto:
Cita de: Otto VanHackman en 13 Enero 2008, 04:11 AM
Incluso puedes utilizar Curl Desde Snoopy... :P
$curl_path El pad para curl si esta disponible
ahora: si Curl y Snoopy hicieran exactamente lo mismo... Para que usar Curl dentro de Snoopy?
jaja.. bueno, es retorica, y ya dejo el tema por que la intencion del post es enseñar a los que no saben una manera facil de hacer Remote Posting, y no confundirlos con existencialismos :P
andale una pelea de PHPeros ;D
Curl es una librería de funciones para conectar con servidores para trabajar con ellos. El trabajo se realiza con formato URL. Es decir, sirve para realizar acciones sobre archivos que hay en URLs de Internet, soportando los protocolos más comunes, como http, ftp, https, etc.
En lo que respecta a PHP, Curl está integrado dentro, de manera que esas librerías también se pueden utilizar desde scripts PHP. Aunque para ello PHP tiene que haberse instalado con soporte a Curl y no es así en todos los casos.
La explicación de cURL en la página de PHP se puede ver aquí: http://www.php.net/curl
También puede venirte bien la explicación de la Wikipedia: http://en.wikipedia.org/wiki/CURL
-¿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":
nnnaaaa en teoria es lo mismo pero diferente :xD es decir con CURL puedes hacer eso pero Snoopy es mas en la onda HTTP mientras que cURL soporta mucho mas.
Pero de todos modos
Cita de: Otto VanHackman en 11 Enero 2008, 20:20 PM
Comentarios y agradecimientos serán bien recibidos
(y determinates para la realización de futuros aportes... :¬¬)
;)
Bueno sobre el comentario no eh bajado tu clase ahora la bajo y veo que tal esta sobre agradecimientos creo que debes aprender un poco de sencilles, ya que si a la gente le gusta te lo va agradecer por PM o por mail y no necesariamente por un post lo cual alimenta tu ego pero publicamente creo que tiene mas valor aquel que agradecimiento que es privado.
Cita de: Red Mx en 13 Enero 2008, 18:10 PM
Bueno sobre el comentario no eh bajado tu clase ahora la bajo y veo que tal esta
Yo no cree la clase... Simplemente explico como utilizarla...
Cita de: Red Mx en 13 Enero 2008, 18:10 PM
sobre agradecimientos creo que debes aprender un poco de sencilles, ya que si a la gente le gusta te lo va agradecer por PM o por mail y no necesariamente por un post lo cual alimenta tu ego pero publicamente creo que tiene mas valor aquel que agradecimiento que es privado.
Mi ego esta donde debe estar, gracias... ;) El comentario es para aquellos que solo saquean...
Salu2!
Cita de: Otto VanHackman en 13 Enero 2008, 23:09 PM
Cita de: Red Mx en 13 Enero 2008, 18:10 PM
Bueno sobre el comentario no eh bajado tu clase ahora la bajo y veo que tal esta
Yo no cree la clase... Simplemente explico como utilizarla...
No entiendo por que solicitar agradecimientos por algo que tu no hiciste :-\
no tiene logica
y sobre el punto de curl , con curl puedo hacer lo mismo sin ninguna duda , y si eso no es verdad , señalame que puede hacerse con snoopy que con Curl no , tal vez asi me aclares un poco las cosas y me llame un poco la atencion la clase , y me anime a bajarla
:D
Saludos
Cita de: alone-in-the-chat en 14 Enero 2008, 03:32 AM
No entiendo por que solicitar agradecimientos por algo que tu no hiciste :-\
no tiene logica
Agradecimientos por tomarme la molestia de hacer el manual de como usar la libreria de parte de aquellos que no saben usar ni curl ni nada...
Cita de: alone-in-the-chat en 14 Enero 2008, 03:32 AM
señalame que puede hacerse con snoopy que con Curl no , tal vez asi me aclares un poco las cosas y me llame un poco la atencion la clase , y me anime a bajarla
Si te animas a bajarla o no no es algo que me robe el sueño, yo puse el manual y la info de la clase por que no es muy conocida y es mucho más facil de utilizar que Curl (y más practica ya que no siempre vas a tener Curl mientras que esta libreria la puedes tener donde se te de la gana).
Si alguien le sirve y le interesa que la baje y ya....
el tutorial esta de p**a madre, de que sirve que critiquéis? :huh:
Venga Otto Van Hackman muy bueno el tuto (aunque algo corto) y espero que sigas haciendo más sobre clases que es algo en lo que ando muy perdido :P
Cita de: Zero- en 14 Enero 2008, 16:25 PM
el tutorial esta de p**a madre, de que sirve que critiquéis? :huh:
Venga Otto Van Hackman muy bueno el tuto (aunque algo corto) y espero que sigas haciendo más sobre clases que es algo en lo que ando muy perdido :P
Muchas Gracias... ;)
Siempre estare por aquí en mis ratos libres para ayudar en lo que pueda...
Pues yo suscribo lo dicho por el señor Zero ::)
Lo mismo digo. Gracias por el acercamiento a la clase! Se agradece el esfuerzo.
y una pregunta que tal vez sea tonta, como se lleva snoopy con los sitios basados en ajax? funciona normalmente? lo pregunto por estos forms que se conectan de inmediato al servidor para enviar los valores de lo seleccionado...