logo
languageESdown
menu

Crear un Simple Web Crawler en PHP

4 min

Antes de comenzar, dar茅 un resumen r谩pido del web scraping. El web scraping es extraer informaci贸n del HTML de una p谩gina web. El web scraping con PHP no hace ninguna diferencia que cualquier otro tipo de lenguajes inform谩ticos o herramientas de web scraping, como Octoparse.

Este art铆culo es para ilustrar c贸mo un principiante podr铆a construir un rastreador web (web crawler) simple en PHP. Si planea aprender PHP y usarlo para el web scraping, siga los pasos a continuaci贸n.

Paso 1

Agregue un cuadro de entrada y un bot贸n de env铆o a la p谩gina web. Podemos ingresar la direcci贸n de la p谩gina web en el cuadro de entrada. Se necesitan expresiones regulares al extraer datos.

Paso 2

Se necesitan expresiones regulares al extraer datos.

function preg_substr($start, $end, $str) // Regular expression 聽聽聽聽聽

{ 聽聽聽聽聽

聽聽聽聽$temp = preg_split($start, $str); 聽聽聽聽聽

聽聽聽聽$content = preg_split($end, $temp[1]); 聽聽聽聽聽

聽聽聽聽return $content[0]; 聽聽聽聽聽

} 聽聽聽

Paso 3

La divisi贸n de cadenas es necesaria al extraer datos.

function str_substr($start, $end, $str) // string split聽 聽聽聽聽聽

{ 聽聽聽聽聽

聽聽聽聽$temp = explode($start, $str, 2); 聽聽聽聽聽

聽聽聽聽$content = explode($end, $temp[1], 2); 聽聽聽聽聽

聽聽聽聽return $content[0]; 聽聽聽聽聽

}

Paso 4

Agregue una funci贸n para guardar el contenido de la extracci贸n:

function writelog($str)

{

聽聽@unlink(鈥渓og.txt鈥);

聽聽$open=fopen(鈥渓og.txt鈥,鈥漚鈥 );

聽聽fwrite($open,$str);

聽聽fclose($open);

}聽

Cuando el contenido que extraemos es inconsistente con lo que se muestra en el navegador, no pudimos encontrar las expresiones regulares correctas. Aqu铆 podemos abrir el archivo .txt guardado para encontrar la cadena correcta.

function writelog($str)

{

@unlink(鈥渓og.txt鈥);

$open=fopen(鈥渓og.txt鈥,鈥漚鈥 );

fwrite($open,$str);

fclose($open);

}

Paso 5

Tambi茅n ser铆a necesaria una funci贸n si necesita capturar im谩genes.

function getImage($url, $filename=鈥, $dirName, $fileType, $type=0)

聽 聽{

聽 聽 if($url == 鈥){return false;}

聽 聽 //get the default file name

聽 聽 $defaultFileName = basename($url);

聽 聽 //file type

聽 聽 $suffix = substr(strrchr($url,鈥.鈥), 1);

聽 聽 if(!in_array($suffix, $fileType)){

聽 聽 聽 聽 return false;

聽 聽 }

聽 聽 //set the file name

聽 聽 $filename = $filename == 鈥 ? time().rand(0,9).鈥.鈥.$suffix : $defaultFileName;

聽 聽 //get remote file resource

聽 聽 if($type){

聽 聽 聽 聽 $ch = curl_init();

聽 聽 聽 聽 $timeout = 5;

聽 聽 聽 聽 curl_setopt($ch, CURLOPT_URL, $url);

聽 聽 聽 聽 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

聽 聽 聽 聽 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

聽 聽 聽 聽 $file = curl_exec($ch);

聽 聽 聽 聽 curl_close($ch);

聽 聽 }else{

聽 聽 聽 聽 ob_start();

聽 聽 聽 聽 readfile($url);

聽 聽 聽 聽 $file = ob_get_contents();

聽 聽 聽 聽 ob_end_clean();

聽 聽 }

聽 聽 //set file path

聽 聽 $dirName = $dirName.鈥/鈥.date(鈥榊鈥, time()).鈥/鈥.date(鈥榤鈥, time()).鈥/鈥.date(鈥榙鈥,time()).鈥/鈥;

聽 聽 if(!file_exists($dirName)){

聽 聽 聽 聽 mkdir($dirName, 0777, true);

聽 聽 }

聽 聽 //save file

聽 聽 $res = fopen($dirName.$filename,鈥檃鈥);

聽 聽 fwrite($res,$file);

聽 聽 fclose($res);

聽 聽 return $dirName.$filename;

聽 聽 }

Paso 6

Escribiremos el c贸digo para la extracci贸n. Tomemos una p谩gina web de Amazon como ejemplo. Ingrese un enlace de producto.

if($_POST[鈥楿RL鈥橾){

//鈥斺斺斺斺斺斺攅xample鈥斺斺斺斺斺-

$str = file_get_contents($_POST[鈥楿RL鈥橾);

$str = mb_convert_encoding($str, 鈥榰tf-8鈥,鈥檌so-8859-1鈥);

writelog($str);

//echo $str;

echo(鈥楾itle:鈥櫬. Preg_substr(鈥/<span id= 鈥渂tAsinTitle鈥漑^>}*>/鈥,鈥/<Vspan>/$str));

echo(鈥<br/>鈥);

$imgurl=str_substr(鈥榲ar imageSrc = 鈥溾,鈥欌濃,$str);

echo 鈥<img src=鈥濃.getImage($imgurl,鈥,鈥檌mg鈥櫬燼rray(鈥榡pg鈥));聽聽

Entonces podemos ver lo que extraemos. A continuaci贸n se muestra la captura de pantalla.

No necesita codificar un rastreador web (web crawler) si tiene un rastreador web autom谩tico.

Como se mencion贸 anteriormente, PHP es solo una herramienta que se utiliza para crear un rastreador web. Los lenguajes de computadora, como Python y JavaScript, tambi茅n son buenas herramientas para quienes est谩n familiarizados con ellos. Hoy en d铆a, con el desarrollo de la tecnolog铆a de web scraping, cada vez surgen m谩s herramientas de web scraping, como Octoparse, Beautiful Soup, Import.io y Parsehub. Simplifican el proceso de creaci贸n de un rastreador web (web crawler).

Tome las plantillas de tareas de Octoparse como ejemplo, permite a todos raspar datos usando plantillas preconstruidas, no m谩s configuraciones de rastreadores, simplemente ingrese las palabras clave para buscar y obtener datos al instante.

Posts populares

Explorar temas

Empiece a utilizar Octoparse enseguida

Descargar

Art铆culos relacionados

  • avatarElena Allende
    Este blog trata de si puede y c贸mo ChatGPT te ayuda a realizar Web Scraping y sus pros y cons comparando con las herramientas de Web Scraping.
    09/02/2023 5 min
  • avatarPaulina Tobella
    Es importante controlar el precio por hora o por d铆a. Octoparse es una gran herramienta gratuita para que pueda extraer datos de cualquier sitio web de comercio electr贸nico, incluidos Amazon, eBay, Costco, B&H Photo, Frys y muchos m谩s. Puede programar una tarea de raspado para lograr la supervisi贸n de precios en tiempo real. Por 煤ltimo, pero no menos importante, estas estrategias no son mutuamente excluyentes. Funciona mejor cuando aplica estas estrategias por completo.
    01/07/2020 5 min
  • avatarPaulina Tobella
    En este art铆culo se recomiendan los 10 mejores cursos online de big data analytics en 2021 para principiantes, especialmente para aquellos que planean hacer la transici贸n a trabajos de an谩lisis de datos.
    01/04/2020 8 min
  • avatarPaulina Tobella
    驴Qu茅 piensa si te digo que hay un truco que funciona bien y puede obtener miles de clientes potenciales casi al instante? Internet ha cambiado la forma en que hacemos negocios. De hecho, las personas generan 2.5 quintillones de bytes de datos cada d铆a (IBM, 2016) y m谩s de 150 zettabytes (150 trillones de gigabytes) de datos necesitar谩n an谩lisis para 2025. (Forbes, 2019) Estos n煤meros pueden sonar asombrosos, no es dif铆cil creer que desarrollar negocios con datos se haya convertido en la corriente principal de hoy. El web scraping puede ayudarlo f谩cilmente a lograr miles y decenas de miles de mensajes v谩lidos, ayud谩ndole a encontrar clientes potenciales.
    08/12/2019 4 min