curl funktioniert nicht für das abrufen einer web-Seite Inhalte, warum?
ich bin mit ein curl-Skript, um einen link gehen und bekommen deren Inhalt für die weitere Bearbeitung. im folgenden ist der link und curl-Skript:
<?php
$url = 'http://criminaljustice.state.ny.us/cgi/internet/nsor/fortecgi?serviceName=WebNSOR&templateName=detail.htm&requestingHandler=WebNSORDetailHandler&ID=368343543';
//curl script to get content of given url
$ch = curl_init();
//set the target url
curl_setopt($ch, CURLOPT_URL,$url);
//request as if Firefox
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") );
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result= curl_exec ($ch);
curl_close ($ch);
echo $result;
?>
aber die Webseite ist nicht ausgenommen, es durch Skript-es gibt user die Ausnahme in der Folge, aber wenn wir normalerweise fügen Sie die url in browser öffnen Sie die Seite in Ordnung.
Bitte helfen, was mache ich hier falsch.
Dank und Grüße
Dies ist nicht data mining. Dies ist nur web-scraping. Bitte verwenden Sie mehr entsprechenden tags, um besser zu Antworten.
InformationsquelleAutor | 2009-05-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lief ich Folgendes Programm/Skript und die Seite wurde korrekt heruntergeladen. Dies wahrscheinlich bedeutet, dass der server läuft bist du das Skript nicht erreichen können, der server auf "criminaljustice.Zustand.ny.uns". Dies ist entweder, weil Ihr server ist falsch konfiguriert ist, oder Ihr server ist explizit das blockieren Sie, das ist eine häufige Folge von aggressiven screen scraping.
Zusätzlichen Tipp zur Fehlerbehebung-wenn Sie shell-Zugriff auf die Maschine, wo Ihr PHP-Skript ausgeführt wird, führen Sie den folgenden Befehl
Dieser Ausgabe wird die Antwort-Header, der enthält möglicherweise einige Ahnung, warum Ihr Antrag nicht.
InformationsquelleAutor Alan Storm
Für useragent ich denke, Sie wollen verwenden Sie die CURLOPT_USERAGENT Konstante
InformationsquelleAutor xkcd150
Ich hatte das gleiche Problem, das endete als die followlocation option nicht gesetzt wird. Ich dachte, LOCKE würde es standardmäßig auf true, aber ich denke mal nicht!?
Sobald ich es einstellen das ich die volle Seite kein problem
InformationsquelleAutor Sotheby it
Ist der user-agent soll in ein array? Ich habe es nicht gesehen, wie zuvor.
Versuchen Sie, nur mit einem einfachen string, d.h.
Hi alex ich hab was falsch ist mit meinem Skript,dessen url tatsächlich, die &amo; anstelle von & symbol, so ist es falsch-url es sich von selbst. trotzdem danke für deine Hilfe.
Ah, ja, sorry, habe ich übersehen das CURLOPT_ Flagge. Ich in der Regel verwenden Sie es mit CURLOPT_USERAGENT. Ja haben Sie kopieren Sie den link aus eine XHTML-Datei? Weil Seiten, die validieren müssen encode kaufmännische und-Zeichen als &
InformationsquelleAutor alex