Crear un Simple Web Crawler en PHP
Wednesday, April 15, 2020Antes 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.
Tabla de Contenido
Paso 1. ingresar la dirección de la página web
Paso 4. guardar el contenido de la extracción
Paso 5. guardar el contenido de la extracció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("log.txt");
$open=fopen("log.txt","a" );
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("log.txt");
$open=fopen("log.txt","a" );
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('Y', time()).'/'.date('m', time()).'/'.date('d',time()).'/';
if(!file_exists($dirName)){
mkdir($dirName, 0777, true);
}
//save file
$res = fopen($dirName.$filename,'a');
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[‘URL’]){
//---------------------example-------------------
$str = file_get_contents($_POST[‘URL’]);
$str = mb_convert_encoding($str, ‘utf-8’,’iso-8859-1’);
writelog($str);
//echo $str;
echo(‘Title:’ . Preg_substr(‘/<span id= “btAsinTitle”[^>}*>/’,’/<Vspan>/$str));
echo(‘<br/>’);
$imgurl=str_substr(‘var imageSrc = “’,’”’,$str);
echo ‘<img src=”’.getImage($imgurl,”,’img’ array(‘jpg’));
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.
9 Desafíos de Web Scraping que Debes Conocer
Cómo Scrapear Datos de una Web a Gran Escala
9 Raspadores Web GRATIS que No Te Puedes Perder en 2021
25 Maneras de Web Scraping Técnicas para Crecer Negocio
10 Malentendidos sobre el Web Scraping
20 Herramientas de Web Scraping para Extraer Datos Rápidamente
Posts más populares
- 1 . Cómo Extraer Datos de Twitter | Descargar a Excel
- 2 . Mejor Scraper de Trustpilot | Obtener Datos de Trustpilot Fácilmente
- 3 . Cómo Construir Base de Datos de Hoteles con Web Scraping
- 4 . Extraer Gratis Datos de Uber Eats de Entrega de Alimentos
- 5 . Alibaba Web scraper | Información de Productos y Proveedores
¡Descarga Octoparse para comenzar con el web scraping o contáctanos para cualquier
pregunta sobre el web scraping!