¿Qué es la web scraping?
Web scraping es una técnica utilizada mediante programas de software para extraer información de sitios web. Usualmente, estos programas simulan la navegación de un humano en la World Wide Web ya sea utilizando el protocolo HTTP manualmente, o incrustando un navegador en una aplicación.
https://github.com/josAlba/WebScraping
Con esta clase podremos sacar información de cualquier pagina.
<?php
class SyncWEB{
private $contenido;
private $url;
public function __construct($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$BUFFERO = curl_exec($ch);
curl_close($ch);
$this->contenido = $BUFFERO;
$this->url = $url;
}
public function getURL(){
$BUFFERO;
preg_match_all('/http[^>]+//i', $this->url, $BUFFERO, PREG_PATTERN_ORDER);
return $BUFFERO[0][0];
}
public function etiquetasHTML($etiqueta="[^>]+"){
$BUFFERO;
//preg_match_all("|<".$etiqueta.">(.*)</".$etiqueta.">|U", $this->contenido, $BUFFERO, PREG_PATTERN_ORDER);
preg_match_all("|<".$etiqueta." .*>(.*)</".$etiqueta.">|U", $this->contenido, $BUFFERO, PREG_PATTERN_ORDER);
return $this->preg_marcht_allARRAY($BUFFERO);
}
public function etiquetaATRIBUTO($id,$atributo="id",$etiqueta="[^>]+"){
$BUFFERO;
preg_match_all("|<".$etiqueta."".$atributo."=".'"'.$id.'"'.".*>(.*)</".$etiqueta.">|U", $this->contenido, $BUFFERO, PREG_PATTERN_ORDER);
return $this->preg_marcht_allARRAY($BUFFERO);
}
public function etiquetaIMG(){
$BUFFERO;
preg_match_all('/<img[^>]+>/i', $this->contenido, $BUFFERO, PREG_PATTERN_ORDER);
$image =array();
$image['imagenes'] =array();
$image['num_imagenes'] = count($BUFFERO[0]);
for($i=0;$i<count($BUFFERO[0]);$i++){
$image['imagenes'][$i] = array();
$image['imagenes'][$i]['contenido'] = $BUFFERO[0][$i];
$buffero_imagen = explode('src=',$BUFFERO[0][$i])[1];
$c = $buffero_imagen[0];
$buffero_imagen = substr($buffero_imagen, 1);
$buffero_imagen = explode($c,$buffero_imagen)[0];
$image['imagenes'][$i]['src'] = $buffero_imagen;
}
return $image;
}
private function preg_marcht_allARRAY($BUFFERO){
$ARRAY_ETIQUETAS =array();
$ARRAY_ETIQUETAS['etiquetas'] =array();
$ARRAY_ETIQUETAS['num_etiquetas'] = count($BUFFERO[0]);
for($i=0;$i<count($BUFFERO[0]);$i++){
$ARRAY_ETIQUETAS['etiquetas'][$i] = array();
$ARRAY_ETIQUETAS['etiquetas'][$i]['etiqueta'] = explode('>',$BUFFERO[0][$i])[0].'>';
$ARRAY_ETIQUETAS['etiquetas'][$i]['contenido'] = $BUFFERO[1][$i];
$ARRAY_ETIQUETAS['etiquetas'][$i]['todo'] = $BUFFERO[0][$i];
}
return $ARRAY_ETIQUETAS;
}
}
?>