Einige Webseiten konnte ich mit dem genialen Tool PHP Simple HTML DOM Parser nicht crawlen, weilder Inhalt, den die Methode file_get_contents() false zurücklieferte.
Um den Fehler zu fixen, war es lediglich nötig, den Funktionsaufruf zu ersetzen:
$html = file_get_html($myUrl);
durch die Funktion und die Nutzung von Curl mit einem korrektem USER_AGENT Header:
$html = getHtml($myUrl);
function getHtml($url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$str = curl_exec($curl);
curl_close($curl);
$html = str_get_html($str);
return $html;
}
Curl is dazu noch performanter als file_get_contents().
Bei anderen Fehlern und Problem lohnt sich die sehr gute FAQ Seite des Projektes.
