# Header Tags Scrapen

Die Header-Tags enthalten oft nützliche Informationen über eine Webseite und darüber, wie sie sich in die Gesamtstruktur der Website einfügt, zu der sie gehört. Die folgenden Beispiele zeigen, wie man auf bestimmte Informationen aus dem <head> zugreift und Sammlungen um diese herum erstellt.

# Charset / Zeichensatz

Um auf den definierten Zeichensatz zuzugreifen, können Sie die folgende Methode verwenden:

$web = new \Spekulatius\PHPScraper\PHPScraper;

/**
 * Navigation zur Testseite. Diese enthält:
 *
 * <meta charset="utf-8" />
 */
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');

// Gibt den charset aus:
echo $web->charset;     // "utf-8"

# Viewport

In einigen Fällen, wie z.B. dem Viewport und den Meta-Keywords, stellt die Zeichenkette ein Array dar und wird als solches angegeben:

$web = new \Spekulatius\PHPScraper\PHPScraper;

/**
 * Navigation zur Testseite. Diese enthält:
 *
 * <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');

/**
 * Gibt den Viewport als Array zurück. Es beinhaltet:
 *
 * [
 *     'width=device-width',
 *     'initial-scale=1',
 *     'shrink-to-fit=no',
 *     'maximum-scale=1',
 *     'user-scalable=no'
 * ],
 */
var_dump($web->viewport);

Wenn Sie auf die ursprüngliche Reihenfolge zugreifen müssen, können Sie diese mit viewportString abrufen:

$web = new \Spekulatius\PHPScraper\PHPScraper;
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');

/**
 * Gibt den Viewport als String zurück:
 *
 * "width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1, user-scalable=no"
 */
echo $web->viewportString;

# Canonical URL

Auf die kanonische URL kann, sofern vorhanden, wie im folgenden Beispiel gezeigt, zugegriffen werden:

$web = new \Spekulatius\PHPScraper\PHPScraper;

/**
 * Navigation zur Testseite. Diese enthält:
 *
 * <link rel="canonical" href="https://test-pages.phpscraper.de/navigation/2.html" />
 */
$web->go('https://test-pages.phpscraper.de/navigation/1.html');

// Ausgabe der canonical URL
echo $web->canonical;       // "https://test-pages.phpscraper.de/navigation/2.html"

Tipp

Wenn kein kanonischer Link gesetzt ist, gibt die Methode null zurück.

# Content-Type

Um auf den Inhaltstyp zuzugreifen, können Sie die folgenden Funktionen nutzen:

$web = new \Spekulatius\PHPScraper\PHPScraper;

/**
 * Navigation zur Testseite. Diese enthält:
 *
 * <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
 */
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');

// Ausgabe des contentType
echo $web->contentType;     // "text/html; charset=utf-8"

# CSFR Token

Die CSFR-Token-Methode geht davon aus, dass das Token in einem Meta-Tag mit dem Namen "csrf-token" gespeichert ist. Dies ist der Standard für Laravel. Sie können mit folgendem Code darauf zugreifen:

$web = new \Spekulatius\PHPScraper\PHPScraper;

/**
 * Navigation zur Testseite. Diese enthält:
 *
 * <meta name="csrf-token" content="token" />
 */
$web->go('https://test-pages.phpscraper.de/meta/lorem-ipsum.html');

// Gibt den csrfToken aus:
echo $web->csrfToken;     // "token"

# Kombinierte Kopfzeilen-Tags

Wenn Sie auf alle oben genannten Methoden zugreifen wollen, verwenden Sie die Methode headers. Sie ist definiert als:

/**
 * @return array
 */
public function headers()
{
    return [
        'charset' => $this->charset(),
        'contentType' => $this->contentType(),
        'viewport' => $this->viewport(),
        'canonical' => $this->canonical(),
        'csrfToken' => $this->csrfToken(),
    ];
}

Weitere Informationen zum Zugriff auf die Meta-Tags.