# Raspado de etiquetas de cabecera
Las etiquetas de cabecera suelen contener información útil sobre una página web y cómo encaja en la estructura general del sitio web del que forma parte. Los siguientes ejemplos muestran cómo acceder a determinadas piezas de información de la etiqueta <head>
y a colecciones en torno a ellas.
# Charset
Para acceder al conjunto de caracteres definido, puede utilizar el siguiente método:
$web = new \Spekulatius\PHPScraper\PHPScraper;
/**
* Navegue hasta la página de pruebas. Contiene:
*
* <meta charset="utf-8" />
*/
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');
// Imprimir el charset
echo $web->charset; // "utf-8"
# Viewport
En algunos casos, como el viewport y las meta keywords, la cadena representa un array y se proporcionará como tal:
$web = new \Spekulatius\PHPScraper\PHPScraper;
/**
* Navegue hasta la página de la prueba. Contiene:
*
* <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1, user-scalable=no" />
*/
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');
/**
* Obtenga la ventana gráfica como una matriz. Debe contener:
*
* [
* 'width=device-width',
* 'initial-scale=1',
* 'shrink-to-fit=no',
* 'maximum-scale=1',
* 'user-scalable=no'
* ],
*/
var_dump($web->viewport);
Si necesitas acceder a la cadena original "viewport", puedes utilizar viewportString
:
$web = new \Spekulatius\PHPScraper\PHPScraper;
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');
/**
* Obtiene el viewport como una cadena. Imprime:
*
* "width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1, user-scalable=no"
*/
echo $web->viewportString;
# URL canónica
La URL canónica, si se da, se puede acceder como se muestra en el siguiente ejemplo:
$web = new \Spekulatius\PHPScraper\PHPScraper;
/**
* Navegue hasta la página de pruebas. Contiene:
*
* <link rel="canonical" href="https://test-pages.phpscraper.de/navigation/2.html" />
*/
$web->go('https://test-pages.phpscraper.de/navigation/1.html');
// Imprimir la URL canónica
echo $web->canonical; // "https://test-pages.phpscraper.de/navigation/2.html"
CONSEJO
Si no se establece un enlace canónico, el método devuelve null
.
# Content-Type
Para acceder al tipo de contenido puede utilizar la siguiente funcionalidad:
$web = new \Spekulatius\PHPScraper\PHPScraper;
/**
* Navegue hasta la página de pruebas. Contiene:
*
* <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
*/
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');
// Imprimir el tipo de contenido
echo $web->contentType; // "text/html; charset=utf-8"
# CSFR Token
El método del token CSFR asume que el token se almacena en una etiqueta meta con el nombre "csrf-token". Este es el valor por defecto de Laravel. Puedes acceder a él usando el siguiente código:
$web = new \Spekulatius\PHPScraper\PHPScraper;
/**
* Navegue hasta la página de pruebas. Contiene:
*
* <meta name="csrf-token" content="token" />
*/
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');
// Obtener el csrfToken
echo $web->csrfToken; // "token"
# Etiquetas de cabecera combinadas
Si desea acceder a todos los métodos mencionados anteriormente, utilice el método headers
. Se define como:
/**
* @return array
*/
public function headers()
{
return [
'charset' => $this->charset(),
'contentType' => $this->contentType(),
'viewport' => $this->viewport(),
'canonical' => $this->canonical(),
'csrfToken' => $this->csrfToken(),
];
}
Más información sobre el acceso a las metaetiquetas.