2017-11-14 1 views
0

Ich sehe viele Fragen zu meinem Problem. Aber keine von ihnen bietet eine praktikable Lösung. Anstatt komplexe Funktionalität zu machen, brauche ich eine einfache Lösung. Bitte, ich will nicht cURL. Ich habe schon viel mit diesem Code gemacht.file_get_contents konnte Stream nicht öffnen: HTTP-Anforderung fehlgeschlagen! HTTP/1.1 500 Intern> Serverfehler in

Ich arbeite an einem Scraping-Projekt und muss den Inhalt der Produktrevisionen von ebay laden.

Ich bin mit PHP-Funktion

file_get_contents(); 

Hier ist die URL i mit beunruhigend bin.

https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183 

Dieses file_get_contents(); funktioniert einwandfrei auf verschiedenen URLs, weiß aber nicht warum nicht.

Dies ist der Code, den ich verwende.

<?php 
$html = file_get_contents('https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183'); 
echo $html; 
?> 

aber ich erhalte diesen Fehler ..

Warnung: file_get_contents (https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&&item=272908801183): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in /Users/samz/Documents/projects/scraping/test.php auf Linie 3

+0

bitte mehr von test.php. Was ist auf und um Linie 3? – wclark

+0

in Zeile 3 ist ... echo $ html; das Skript, das ich oben geschrieben habe. Sie können dieses Skript kopieren und in eine beliebige PHP-Datei einfügen und auf "Hinter" klicken. Sie erhalten den gleichen Fehler. Dies war die einfachste Methode, um Fehler für Ihre Gurus neu zu erstellen. BTW sollte es Zeile 2 sein. Ich habe eine zusätzliche Zeile auf meiner test.php Datei – MFarooqi

+0

Warum verwenden Sie nicht die eBay-API? – nogad

Antwort

2

file_get_contents (die Spitze auf blaues Rechteck lesen) leicht auf Server-Seite blockiert werden kann durch php.ini vermeiden Sie es zu verwenden. Wenn Sie Daten von einer anderen Site abrufen möchten, verwenden Sie stattdessen curl. http://php.net/manual/en/book.curl.php, gibt es viele Optionen, die Sie mit curl verwenden können, indem Sie ein wenig spielen der folgende Code kann mit Ihrer URL funktionieren.

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch,CURLOPT_URL,"https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183"); 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"); 
$data = curl_exec($ch); 
curl_close($ch); 

und durch das Echo der $ data varible können Sie die ganze Seite sehen.

echo $data; 

können Sie versuchen, die Daten von der Seite Parsen von PHP DOM Methods und wandeln sie in den Datentyp Sie nutzen (Objektklasse, Array usw.) wollen.

+0

shuttuppp ... ernsthaft. ????. du hast mein Problem gelöst, mit dem ich seit 3 ​​Tagen kämpfe ... wie kannst du es wagen, so einfach zu sein !!! .. lovit! – MFarooqi

Verwandte Themen