Cómo hacer Web Scraping con PHP

Cómo hacer Web Scraping con PHP

Aprende Cómo hacer Web Scraping con PHP en cualquier página. en este ejemplo vamos a trabajar con la página de resultados de Google, vamos a utilizar cURL que es una librería PHP que gestiona peticiones HTTP con las que vamos a republicar en nuestro servidor local, la información de resultados de una búsqueda específica en Google.

Scraping es un proceso que se aplica a los sitios web, para extraer información de estos, un ejemplo útil podría ser saber el precio del dólar con base en unos portales específicos, para re publicar el consolidado en Twitter, o en un blog relacionado con el tema.

Puesta a punto del proyecto sobre el cómo hacer Web Scraping con PHP

Para llevar a cabo el proceso de Scraping voy a usar una clase php llamada simple-html-dom que permite extraer y modificar el DOM HTML de una manera sencilla y efectiva.

El DOM representa un documento en el navegador como un árbol de nodos y cada nodo representa una parte del documento (puede tratarse de un elemento, una cadena de texto o un comentario.

Descarga de la clase simple-html-dom

La clase simple-html-dom la puedes descargar en su última versión en el siguiente enlace:

https://sourceforge.net/projects/simplehtmldom/files/latest/download

Descargarás un archivo ZIP que puedes descomprimir con WinRAR si estás en Windows sin inconvenientes. De este archivo el único que necesitarás para trabajar en este mini proyecto es el llamado simple_html_dom.php

Este documento simple_html_dom.php lo llamaremos desde nuestro index, por medio de una función require o include PHP para luego llamar las funciones y métodos de esta clase que lleguemos a necesitar.

Elección del termino de búsqueda en Google

Esta fase es bastante sencilla, basta con poner la frase que quieres escrapear de Google, para mi ejemplo voy a utilizar la siguiente frase:

aplicaciones php gratis

Después de poner tu frase presionas enter y te va a salir la típica pantalla de resultados de Google sobre tu frase elegida, se debe ignorar el parámetro source, y todo lo que esté después del query en sí, para mi ejemplo, la url original era esta:

https://www.google.com/search?q=aplicaciones+php+gratis&oq=aplicacio&aqs=chrome.0.69i59j69i57j0i271j69i60l4j69i61.8657j0j4&sourceid=chrome&ie=UTF-8

Después de gratis, el ampersand y todo lo demás se retira dejando la URL de la siguiente manera:

https://www.google.com/search?q=aplicaciones+php+gratis

Ambas generar el mismo resultado, pero la segunda hará el trabajo más sencillo para la librería nativa cURL de PHP.

Script index.php

Documento index.php resultante con la implementación de cURL para imprimir los resultados del texto de los enlaces de la pantalla de Google sobre la consulta de aplicaciones php gratis

<?php

include('simple_html_dom.php');

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://www.google.com/search?q=aplicaciones+php+gratis');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
curl_close($curl);
//echo $result;

$domResult = new simple_html_dom();
$domResult->load($result);

foreach($domResult->find('a[href^=/url?]') as $link)
echo '<h1>' . $link->plaintext . ' </h1><br>';

?>

Repositorio en GitHub del mini proyecto de web scraping en PHP


https://github.com/configuroweb/scraping-php
1 forks.
2 stars.
0 open issues.

Recent commits:

Instalación alternativa del proyecto en un servidor local

Puedes instalar el mini proyecto con XAMPP como es habitual en mis publicaciones, para eso te puedes guiar de la siguiente publicación:

Cualquier cosa quedo al pendiente !!

2 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada.