Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Oggy

#1
Zona Webmaster / Scraping web
Septiembre 27, 2015, 01:21:41 PM
    Tiempos que no pasaba por acá a postear algo, recordé que en uno de los foros en los que aportaba había dejado algo interesante que quiza a algún visitante de éste foro le agradaría ver.
    Debido a que el tutorial estuvo enfocado a una comunidad distinta corregí algunas palabras para hacerlo más presentable en undercode.



    Hoy les presentaré un tutorial de cómo sacar datos de algún sitio web sin tener que programar, además de ello les mostraré un ejemplo práctico, el ejemplo que daré será crear un auto publicador de chistes en twitter.

    Muchas veces necesitamos información de un sitio web pero este no tiene alguna api ni sus datos accesibles vía json o alguna forma que nos de acceso a su información, normalmente usamos algún tipo de herramienta en algún lenguaje como php,js u otro para jalar la información, pero.. qué pasa con la gente normal o personas que tenemos conocimientos intermedios de programación? se nos vuelve un dolor de cabeza.
    De las herramientas que conozco para scraping normalmente uso xpath y una que otra librería en php, aveces me enojo tanto por ser tan complicada la tarea que termino olvidándome de lo que tenía en mente, bueno esto se terminó cuando conocí a Kimono
    Sí, Kimono y no la prenda de vestir sino una herramienta la cual nos permite que cualquier tipo de sitio web el cual tenga contenido pueda ser scrapeado en tan solo unos pocos y fáciles pasos.

De qué nos sirve Kimono?

Nos sirve para evitarnos el problema de programar algún script que nos saque cierta información de un sitio web o bien evitar pagarle a alguien para que haga esta tarea.

Imaginen este escenario que además traeré a la vida muy facilmente...
Queremos usar la api de twitter para publicar desde ella en nuestro twitter con alguna librería en php pero lo que queremos publicar está en un sitio web en especifico y se actualiza a cada rato, además de ello no queremos estar publicando o modificando el script a mano...
Pues fácil y sencillo, usamos kimono para Scrapear la data que queremos de la web, pasarsela a algún lenguaje y si la data es dinámica, osea se actualiza usamos un motor de base de datos para alojarla en una base de datos propia (por si queremos usar mucho mejor la data scrapeada)
como motor de bases de datos muchos usamos mysql, así que en éste tutorial en el ejemplo que presentaré usaré ese motor de base de datos.


Requerimientos

Scrapear cualquier web desde kimono -> Cualquiera puede hacerlo, no requiere conocimientos especiales.

Manejar los datos scrapeados(sacados de la web) -> Kimono ya trae una manera de usar la data que recolectamos, o bien si deseas más libertad necesitas un nivel de lengaje de programación intermedio, aconsejo Js,php,python...

Crear la app de twitter, combinarla con kimono y php para crear un autopublicador con Kimono php y un cron job -> Nivel de php intermedio

Bueno como decía mi abuela, primero la primaria les presentaré kimono, para ello nos dirijimos a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta  Es la página oficial de kimono, nos registramos desde: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



nos dirijimos a el apartado learn y buscamos la sección donde nos proveen la extención de chrome :



Acá les dejo el link directo de la chrome extención: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Se la bajan y tendrán en su navegador algo similar:



Listo, ya estamos listos para empezar a sacar la información de el sitio que queramos vamos a ello!

El ejemplo que daré será Sacar los chistes de un website.


Explico: Property1, vendría siendo el nombre de cada información que saquemos de la web, ejemplo estamos en la página de chistes, yo sólo quiero sacar los chistes y nada más, cómo le llamaremos? pues chistes, si estan por ejemplo en un sitio web de noticias, podés llamar a cada propiedad por un nombre como: título,autor,contenido, así cuando Kimono te pase la info en el Formato Json pues no te vas a perder con la data que extrajiste.

Guardas el proyecto y estas listo para empezar.



[LIST=1]
  • Nombre del proyecto
  • Tags, hace referencia a el uso que le darás a la api
  • Intervalo de tiempo en el que Kimono actualizará la info
  • Si la página tiene paginación y hay más info kimono screapea esas páginas, especificas cuantas páginas deseas scrapear.
Luego se van a la página principal de kimono y desde su cuenta se dirigen a su apis.



Después de irse al apartado de sus apis creadas, se desplegará la info de su api.



Muestra información como nombre de su api, cuándo kimono volverá a jalar información nueva de la página scrapeada, información de errores,aciertos de la api y otras hiervas más.

No eres programador y quieres usar la data que sacaste de la web?

Este apartado enseñaré la manera más fácil dónde no se requiere saber programar en ningún lenguaje para manipular la data que scrapeaste, crearemos una app con kimono dónde desplegaremos toda la información.

En su cuenta tendrán un apartado llamado App builder, se usará para crear una app en la cual usaremos la información de la web que scrapeamos.
Link directo para crear la app: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Enlazarán su app con la data scrapeada, kimono les ofrecerá esa opción, después de ello escogen el estilo que desean para su app y tendrán una app con data actualizable de el sitio web scrapeado.



El link de este ejemplo pueden verlo acá: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

También los que no les interesa o no saben programar en algún lenguaje tienen otra opción de embeder su app en wordpress o a un sitio web, acá más info: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Creando app en twitter y combinándola con kimono, php y un Cron job

Cualquiera puede hablar y presentar un tutorial Basándose en simples teorías que quieren venir a ofrecerte algo sin haber sido probado, éste tutorial pretende enseñarte lo que yo mismo he aprendido y de una manera fácil, sin suposiciones ni nada por el estilo, en el ejemplo que yo daré usaré la api que creamos y la combinaremos con la api de twitter y una librería en php más un cron job que nos permitirá twittear nuestros chistes automáticamente.

Requerimientos: Saber php, entusiasmo e imaginación.

conexion.php

Código: php
<?php

$db = mysqli_connect("host","user","pass","bd");

if($db){
    echo "conectado";
}else{
    echo "No te has conectado hay un problema";
}


chistes.php
Código: php
<?php

error_reporting(0);

require("conexion.php");
include("TwitterAPIExchange.php");



$hora = date("i"); // minutos para escojer qué chiste se enviará a twitter

$nm = mysqli_query($db,"select * from chistes where id = $hora"); //recojemos el chiste y depende de la hora/minuto o lo que tengas programado se publicarán un diferente chiste de la base de datos

$um = mysqli_fetch_assoc($nm); //iniciamos la función para traer el chiste de la bd

$pop = $um["chiste"];


//Logica para enviar los datos a twitter con su libreria

$settings = array(
    'oauth_access_token' => "Tu token",
    'oauth_access_token_secret' => "Tu token secreto",
    'consumer_key' => "tu llave ",
    'consumer_secret' => "tu consumer secret"
);

$url = "https://api.twitter.com/1.1/statuses/update.json";

$postdata = array(

'status' => $pop //chiste pasado a la libreria para que sea enviado a twitter


);

$metodo = "POST";

$twitter = new TwitterAPIExchange($settings);

echo $twitter->setPostfields($postdata)
             ->buildOauth($url,$metodo)
             ->performRequest();


También necesitarán la api de twitter en php, TwitterAPIExchange, la bajan desde acá No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Para crear tu app en twitter se van a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Crean su app, le dan permisos de lectura y escritura.

Para poder guardar los chistes de kimono a la bd yo hice esto: Recorrí los datos con un foreach anidado, así al finalizar el foreach anidado me enviaba los datos a mi bd:

Logica para enviar mis datos de kimono a mi bd:

Código: php
<?php
require("conexion.php");
$request = "https://www.kimonolabs.com/api/77rvy8e2?apikey=Bbx40LCzP5mlQFEtUW0PLbChLDJ4YWeZ"; //Nuestra api kimono en formato json
$response = file_get_contents($request); //Obtener el código de la api
$results = json_decode($response, TRUE); //Decodificar el json de la api


//foreach anidado para obtener el chiste
foreach ($results as $key => $value) {
   

    foreach ($value as $clave => $valor) {
       
        foreach ($valor as $culo => $fluflu) {
           

            foreach ($fluflu as $wea => $nono) {
               
                $insertar = $nono["text"]; //asignamos a $insertar los chistes y se recorren todos con el foreach anidado

                mysqli_query($db,"insert into chistes(id,chiste) values('','$insertar')"); //consulta sql para insertar los chistes
            }
        }
    }
}


Creando un cron job para automatizar los tweets

Con un cron job se nos facilitará la vida y la publicación de tweets automáticos, en éste ejemplo estamos usando los chistes que sacamos de la web de chistes y después de haberlos acomodado en la api de kimono los pasamos a nuestra bd, ahora realizaremos el cron job.
esta vez no usaré ningún cpanel sino que usaré un servicio gratuito que nos dejará crear un cron job y ejecutar nuestro script cada cierto tiempo, nos iremos a: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta se registran y se dirigen a el area de members, ahí estarán los detalles de sus cron jobs creados, si no tienen ni uno no les saldrá nada, se irán a "Cron jobs" y crearán uno nuevo:



Configuran a gusto su cron job, en mi ejemplo lo pondré que se ejecute cada 1 minuto para demostrarles que funcionan los tuits automáticos.



Después de haberlo dejado unos minutitos corriendo este fue el resultado:



Podés jugar con los caracteres, ya ves que se lia un poco con las eñes y otros caracteres, esto se soluciona cambiando el charset y teniendo un poco de lógica en php.

Todas nuestras apis pasan a servirse en un json, podés usar json desde casi cualquier lenguaje de programación.
Puedo darles ideas,: Sacar las listas de alguna web de anime, sacar las listas de una web de pelis, sacar la información diaria de algun sitio web de noticias, ya saben que kimono actualiza su api automáticamente así que solo tienen que scrapear una sola vez, kimono también permite scrapear secciones dónde te pide logueo, en la documentación que dejaré explican cómo hacerlo.

Documentación oficial de kimono en videos: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta (Mejor vean los tutoriales con viemeo, aconsejado.)

Documentación completa: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

qué es scraping: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Saludos 8)!
#2
No creo que una función pre-hecha sea el problema, para eso existen para no reinventar la rueda, más bien seria bueno que no se publique el código de buenas a primeras sino que el creador de el tema los reciba por mp y vaya indicando a los ganadores en una lista ordenada.
#3
Lenguaje usado: php

#4
Pues estas campañas CPA(pago por accion, pay per action) son muy buenas y españa es el país que deja mejores ganancias, cada vez que alguien se suscribe en uno de estos servicios se le descuenta un buen pastón de su saldo, también hay otra herramientra muy interesante que no es CPA sino un sistema de micropagos sms el cual permite cobrar cualquier suma de dinero a la persona que se suscriba.
Para el consumidor es una mierda que hayan este tipo de cosas tan engañosas, pero para los que usamos y hemos usado éste método para bien propio es una lotería.
#5
Bonito leerte mamasithah   :)
PD: Broo.
#6
Bugs y Exploits / Re:Backdorizando un archivo PHP
Enero 14, 2013, 09:02:13 PM
yo que solo pensaba que servias para ponerte borracho, esta genial para los que normalmente se acostumbran a usar tools sin examinarlas.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Nice brother.
PD: ahora no te vayas a poner a infectar las tools-
#7
Off Topic / Re:De que pais eres?
Enero 12, 2013, 03:13:12 PM
Colombia
An tomado alguna vez buen Café?
#8
La Reyna del metal Tarja turunen, finlandesa hermosa con el dominio de el finlandes,español e ingles <3 y por qué no? La banda noruega Aqua

#9
Según lo que entendi:

Código: php
def lolponyxd():
x = input("Ingrese un numero:")
y = input("Ingrese otro numero:")
if (y < x):

print x,"es mayor que:",y

else:
print y,"es mayor que:",x


lolponyxd()
#10
Pentesting / Re:Cross site port attack - XSPA
Diciembre 31, 2012, 01:53:03 AM
Eres como un angel caido de el cielo, buen post brother :P
#11
Bienvenido brother, espero que compartas tú conocimiento & como dice sanko esto es peor que la heroina  ::)
#12
Off Topic / Re:Compras en tiendas Chinas
Diciembre 29, 2012, 09:07:40 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Dealextreme, Experiencia propia :P
#13
Claro que no es seguro, ademas que se encuentran cada tipo de maniacos, aunque No solo se ven cosas del tipo bizarras como pedofilia ó "venta de sicariatos".
tal y como lo redacto chema en su blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Se encuentran diferentes tipos de cosas, más que todo foros de hacking los cuales normalmente pertenecen a comunidades que quieren estár más o menos encubiertas, y vamos que almenos usan la deep web para incubrir sus fechorias, también está de moda ir a "joder" en foros 4chan (lugar de nacimiento de anonymous).

Foros de hacking en la deep web, muchos pero no te aseguran que sean seguros, dehecho no puedes estár seguro que mientras estás en underc0de estes sufriendo algún tipo de ataque.
volviendo a la deep web, puedes ver imagenes de "extraterrestres" y foros en los cuales se debaten temas Sobre politica, también entra al escenario el mercado negro, con venta de armas,organos etc...
Es preferible que uses algúna maquina bajo algun O.S linux, esto no quiere decir que estaras seguro, pero más que en windows si, si te quieres adentrar más a este mundillo de la deep web en internet ahy miles de articulos los cuales datan sobre Este lugar, siendo el posible hermano de el laberno.
Normalmente cuando oyes sobre la deep web te hablan sobre que puedes adquirir x servicios que brinden algunos de ahy, pagando con una moneda virtual la cual es llamada Bitcoin, te dejo info sobre la misma: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
ademas que los argentinos que conocen sobre la bitcoin le sacan mucho provecho, creo que son casi los unicos en sur america que se toman enserio este tema, y lo llevan hasta extremos de crear sus propios mineros (servidores) para generar bitcoins.
#14
Feliz navidad con todos chicos, espero que la pasen bién con sus seres queridos.


PD: nada de andar cardeando para los regalos de navidad, portense bién ::)
#15
Zona Webmaster / Re:Feliz navidad Underc0de.!
Diciembre 23, 2012, 10:31:17 PM
Nice que te superes cada dia brother, espero que no dejes de hacerlo.

Código: php
/intranet/
#16
Base de Datos / Re:MongoDB - La MySQL del NoSQL
Diciembre 18, 2012, 04:14:01 PM
Pedazo de tutorial brother, Creo que se hace mas intuitiva está base de datos, que una relacional como las que usan sql para hacer sus consultas a una Base de datos, tiene muchas caracteristicas de json, las cuales facilitan el entendimiento y logica de lo que hacemos por ejemplo (javascript):

Código: php

<script>
var  panel = {"admin":"sanko"}   << mola no? parecido a el Bson que usa mongoDB xD

function asd(admin) /*<< o si eres mas aburrido y quieres joderte el cerebro crea una clase y sus propiedades con una función luego llama su estancia con otra var*/
{
this.admin = admin;
}
var Adm = new asd("sankosooooo");
with(document)
{
write(panel.admin+"\n")
write(Adm.admin)
}


</script>


me viene de perlas está iniciación que tú nos brindas para conocer bases de datos no relacionales, tengo un proyecto para practicar con mongoDB (no django xD)  ::) Te fajaste con este post men.
#17
Saludos compañeros.
Normalmente cuando escuchamos por primera vez sobre php ó sobre su existencia lo escuchamos como que es el lenguage standard para crear páginas web dinamicas, y aunque en parte lo es, lenguages como python,ruby,javascript están innovando la web esto no quiere decir que php se quede atras.
Aclaro que antes de que alguién me cruzifique por haber tocado a javascript lo invito a Leer mas sobre este lenguage & que vea su potencial acompañado con frameworks.
Las funciones de red en php Son muy intuitivas, nos facilitan el investigar el Nombre de un dominio a el que corresponde X ip que tengamos ó viceversa, también nos permiten enviar Cookies, Enviar headers (cabeceras) e interactuar de diferentes formas principlamente con el protocolo http.

Aqui dejo algunas funcionalidades, explotadas al maximo desde la CLI de php, (o esque php solo es para la web?).

función gethostbyaddr: nos devuelve el nombre de dominio de una ip dada.
uso:



Código: php

<?php

$y = $argv[1];
echo gethostbyaddr("$y")."\n";

?>


Hacemos la llamada a la variable de entorno que dira que estamos usando php para ejecutar un documento, dentro de este documento tenemos definida una variable del tipo array que recojera el valor que le pasemos por consola, este valor sera la ip que impongamos & el script nos devolvera Gracias a la función dethostbyaddr el nombre de el dominio que hace referencia a la ip dada.

Para no alargarme mas en el asunto Dejaré la lista de las funciones de red, Espero que les sea de gran ayuda & vean el potencial de estás funciones.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#18
Python / Re:Enviando cabeceras a un servidor externo.
Diciembre 13, 2012, 06:13:20 PM
Bueno si no querias descargar el contenido, podrias haber usado curl y enviar la constante CURLOPT_RETURNTRANSFER & el valor booleano de true ó 1.
yo hace poco estaba buscando como enviar Cabeceras para hacer algo "rraro" que se me habia ocurrido en una página web, xD a decir verdad funciono & lo hice con Sockets en php (si es muy neandertal) xD pero a decir verdad cuando algo funciona no ahy que juzgarlo.
Buena jugada Esa de comprobar si la web se a "desbloqueado" con el http response 200, algo similar hice para crear un admin panel finder, pero como no soy amante de crear herramientas "juackerosas" solo deje un poc.
& aunque python a decir verdad siempre hace las cosas mas "faciles" con php también pueden alegrarse el dia & no romperse tanto el coco como muchos creen que php hace.



Para el envio de parametros de un form con php se haria mas tedioso & largo el código claro está, pero nada que no pueda resolver curl xD a menos que alguién se anime a partirce el coco con sockets.
#19
Back-end / Re:PHP Zone-H Reporter
Diciembre 08, 2012, 12:36:43 AM
heyctre Como se dice poray, entre gustos no ahy Disgustos, La basura de alguién es el tesoro de otros, enfin a lo que quiero llegar esque talvez muchos tienen un zone-h para presumir Sus "defaces" & elevar su Ego, otros por razones Personales & pues Eso es lo interesante de Cada persona, que mientras existan diferentes formas de pensar siempre existiran este tipo de gustos.
#20
Python / Re:[Python] Zone-H Reporter Update
Diciembre 08, 2012, 12:28:16 AM
Aplicaria estos Dichos ante esa respuesta sanko:

El primer amor nunca se olvida.
Los buenos Hijos vuelven a Casa.
Jajaja  ;D