2016-10-22 2 views
2

Ich verwende Goutte (die Guzzle verwendet) Inhalt und mein Skript zu extrahieren endet mit einem Fehler, obwohl ich in try/catch renne:Kann nicht Ausnahme mit try/catch behandeln

Error: Client error: `GET http://example.com/C42C9CA3` resulted in a `403 Forbidden` response: 
<?xml version="1.0" encoding="iso-8859-1"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "htt (truncated...) 

Diese ist was ich habe:

use Goutte\Client; 
$HTTPconfig = [ "curl" => [ 
        CURLOPT_TIMEOUT => 60, 
        CURLOPT_CONNECTTIMEOUT => 60, 
        CURLOPT_SSL_VERIFYPEER => false, 
       ], 
       ['http_errors' => false] 
       ]; 
$HTTPclient = new \Goutte\Client; 
$HTTPclient->setClient(new \GuzzleHttp\Client($HTTPconfig)); 
$HTTPclient->setHeader('user-agent', 'Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0'); 

try { 
    $crawler = $HTTPclient->request('GET', $url); 
    $doc = $crawler->html(); 
} catch (Exception $e) { 
    write($e->getMessage()); 
    continue; 
} 
+0

So dass die Ausgabe nicht von 'write ($ e-> getMessage());'? –

+0

@JonStirling Nein, ich habe später versuchen/fangen und es endet immer noch mit diesem Fehler. – 3zzy

+0

Und es ist definitiv dieser Code, der es verursacht? Ich sehe keinen Grund dafür, dass dies scheitern würde, und höre einfach die Hinrichtung auf. –

Antwort

3

Versuchen mit:

} catch (\Exception $e) { 

statt:

} catch (Exception $e) { 

EDIT:

Wenn Sie mit PHP-7 können Sie versuchen, Throwable immer mit einem Schrägstrich zu fangen, wie folgen:

} catch (\Throwable $e) { 

Hoffe diese Hilfe

+0

Ja - vor allem, wenn Sie 'namespace''d die Datei haben, in der Sie arbeiten. (Unklar von Ihrem Beispiel.) –

+0

Nur versucht, es ist immer noch die gleiche! Eine schlechte URL kann so ein Hindernis ah! – 3zzy

+0

sein @ 3zzy wenn du mit PHP7 arbeitest überprüfe mein update – Matteo

0

Entfernen ['http_errors' => false] Option. Es ist true standardmäßig und Ergebnisse mit Ausnahme für 4xx/5xx Antwortcodes.

+0

Versucht, immer noch dasselbe. :( – 3zzy