2012-03-21 8 views
6

Estoy buscando una manera de hacer una pequeña vista previa de otra página de una URL dada por el usuario en PHP.Web scraping en PHP

Me gustaría recuperar solo el título de la página, una imagen (como el logotipo del sitio web) y un poco de texto o una descripción si está disponible. ¿Hay alguna manera simple de hacer esto sin bibliotecas/clases externas? Gracias

Hasta ahora he tratado de utilizar la clase DOCDocument, cargar el HTML y mostrarlo en la pantalla, pero no creo que esa es la forma correcta de hacerlo

+1

Sí. Ahi esta. ¿Has buscado en Google? ¿Has probado algo en absoluto? –

+1

Sí, no preguntaría aquí si no lo hice – federicot

+1

Entonces ... ¿qué ha intentado? –

Respuesta

14

Te recomiendo que consideres simple_html_dom para esto. Lo hará muy fácil.

Aquí hay un ejemplo práctico de cómo extraer el título y la primera imagen.

<?php 
require 'simple_html_dom.php'; 

$html = file_get_html('http://www.google.com/'); 
$title = $html->find('title', 0); 
$image = $html->find('img', 0); 

echo $title->plaintext."<br>\n"; 
echo $image->src; 
?> 

Aquí es un segundo ejemplo que va a hacer lo mismo sin una biblioteca externa. Debo señalar que usar expresiones regulares en HTML no es una buena idea.

<?php 
$data = file_get_contents('http://www.google.com/'); 

preg_match('/<title>([^<]+)<\/title>/i', $data, $matches); 
$title = $matches[1]; 

preg_match('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $data, $matches); 
$img = $matches[1]; 

echo $title."<br>\n"; 
echo $img; 
?> 
+0

Gracias, por su respuesta. Creo que me quedaré con la biblioteca Simple HTML Dom Parser entonces, como todo el mundo lo recomienda – federicot

2

Usted puede utilizar SimpleHtmlDom para esto. y luego busque las etiquetas de título e img o cualquier otra cosa que necesite hacer.

+1

Una de las mejores bibliotecas de terceros que he usado. Lo recomiendo – cchana