Foro Black Hat SEO

Versión completa: Sencillo Crawler en PHP para sacar chistes
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Me ha pedido un amigo un pequeño crawler didáctico y este es uno bastante simple que creo que puedes ver la potencia que tiene un robot en PHP con pocas líneas se puede hacer mucho!

Código PHP:
<?php

        
/* Robot para sacar Chistes de la web chistes.com */
        /* Por nicolasmarin.com */
        
        // Recorremos los primeros 1000 chistes de la web
        
for($i 1$i <= 1000$i++)
        {
                
/* Se puede obtener el codigo HTML con la funcion file_get_contents
                   Tambien se puede emplear la libreria cURL que tiene muchas mas opciones */
                
$response_html file_get_contents("http://www.chistes.com/Chiste.asp?ID=$i");
                
                
/* Empleando expresiones regulares vamos a sacar dentro del HTML la clasificacion y el chiste */
                
preg_match('/<div class="clasificacion">.*"_top">(.*)<\/a>/siU'$response_html$clasificacion);
                
preg_match('/height="100" hspace="5" vspace="5" align="left" \/>(.*)<\/div>/siU'$response_html$chiste);
                
                
/* Imprimimos todos los datos extraidos del chiste */
                
echo "CHISTE NUMERO: $i<br/>\nCLASIFICACION: $clasificacion[1]<br/>\nCHISTE: $chiste[1]<br/>\n";
        }

?>
Lo compliado sera cuando no tengamos un id en el que basarnos para saber a donde ir a leer ¿no?
Siempre hay metodos, x ejemplo, busca un crawler que te muestre todas las urls, y luego copia y pega las urls, en un array, y listo.

O más fácil, busca su sitemap, saca las urls y a un array en el script, y a recorrer el array...
(21-11-2015, 08:14 PM)vmartinez escribió: [ -> ]Lo compliado sera cuando no tengamos un id en el que basarnos para saber a donde ir a leer ¿no?

Este es un ejemplo muy sencillo, pero muchas webs tienen ids, sólo hay que saber encontrar esa url Guiño, por ejemplo con wordpress, aunque tenga permalinks puedes usar /?p=ID_POST jejeje

Y siempre puedes usar un crawler que vaya rastreando un sitio como dice @Miguel2008 Sonrisa