Über Web, Tech, Games, Art,
Code & Design

2. April 2023

Wie man Inhalte anderer Websites mit „Simple HTML DOM“ auslesen kann

„Simple HTML DOM“ ist ein sehr praktisches Tool um Inhalte, z.B. Job-Angebote, Immobilienangebote oder ähnliche Daten von Websites auszulesen und auf der eigenen Website weiter zu verarbeiten. So lässt sich z.B. eine Job-Börse oder Immobilienportal realisieren auf denen die Angebote mehrerer Firmen und Anbieter automatisch gelistet werden können.

Um zu starten musst du die PHP-Library zunächst downloaden und einbinden.

include 'simple-html-dom.php';

/* in WordPress 
include get_template_directory().'/inc/simple_html_dom.php';*/Code-Sprache: PHP (php)

Anschließend lädst du mit „file_get_html“ die Inhalte der Website. Dann bestimmst du welcher Bereich der Website ausgelesen werden soll. Das geschieht mit einem foreach-Loop. In diesem Beispiel werden alle H4´s im div mit der Klasse „jobs“ ausgelesen. Dann wird der Text der H4 ausgelesen und innerhalb der H4 die URL gesucht. Um sicher zu gehen, ob es sich hier auch wirklich um einen Job handelt, überprüfe ich hier noch Vorkommen von „(m/“ innerhalb der H4. Und zuletzt wird in diesem Beispiel die verlinkte Job-Bezeichnung einfach ausgegeben.

$html = file_get_html('https://www.example.com');
foreach($html->find('.jobs h4') as $element){
  $title = $element->plaintext;
  $url = $element->find('a',0)->href;
  $title = trim($title);
  if (strpos($title, '(m/') !== false) {
        echo '<a href="'.$url.'">'.$title.'</a><br>';
    }
}Code-Sprache: PHP (php)

In der Praxis wäre es natürlich sinnvoller, die Daten in einer eigenen Datenbank zu speichern und von dort aus auszugeben.

In manchen Fällen kommt es bei Websites zu Problemen mit der SSL-Verschlüsselung. Mit folgendem Code lassen sich diese Probleme oft umgehen:

$arrContextOptions=array("ssl"=>array("verify_peer"=>false,"verify_peer_name"=>false,),);  
$response = file_get_contents("https://www.example.com", false, stream_context_create($arrContextOptions));

$html = str_get_html($response);Code-Sprache: PHP (php)

Eine vollständige Dokumentation zu Simple HTML DOM ist hier zu finden: https://simplehtmldom.sourceforge.io/docs/1.9/index.html


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert