2011-01-17 11 views
15

Ich versuche, Daten von this Seite mit wget und curl in PHP zu holen. Wie Sie in Ihrem Browser sehen können, ist das Standardergebnis 20 Einträge, aber durch Setzen des GET-Parameters iip auf Nummer x kann ich x Elemente abrufen, dh http: // www.example.com/ foo? A = 26033 & b = 100Curl und wget: Warum wird der GET-Parameter nicht verwendet?

Das Problem ist, dass der iip-Parameter nur in Browsern funktioniert. Wenn ich versuche, den letzten Link mit wget oder curl zu holen, werden nur 20 Elemente zurückgegeben. Warum? Versuchen Sie Folgendes in der Befehlszeile:

curl -O http://www.example.com/foo?a=26033&iip=b 
wget http://www.example.com/foo?a=26033&iip=b 

Warum kann ich den GET-Parameter iip nicht verwenden?

Antwort

33

Versuchen Hinzufügen Zitate:

curl -O 'http://www.objektvision.se/annonsorer?ai=26033&iip=100' 
wget 'http://www.objektvision.se/annonsorer?ai=26033&iip=100' 

Die & verfügt über spezielle Funktionen auf der Kommandozeile, die wahrscheinlich die Probleme verursachen wird.

+0

Ehrfürchtig, danke, das funktioniert von der Shell! Das Problem ist, dass ich das tatsächlich von PHP verwende, also denke ich, dass ich nur den Curl-Aufruf in Anführungszeichen einschließen muss? – caxpeyr

3

Versuchen Sie, das Argument zu zitieren. Zumindest in cmd, & wird verwendet, um zwei Befehle zu begrenzen, die einzeln ausgeführt werden.

2

Sie werden Ihre URL einschließen müssen entweder in "oder‘, da die & eine besondere Bedeutung in Shell hat ... Das wird Sie geben:

curl -O "http://www.objektvision.se/annonsorer?ai=26033&iip=100" 
wget "http://www.objektvision.se/annonsorer?ai=26033&iip=100" 
3

& ist ein reserviertes Wort in der Schale Nur entkommen Sie es so \&

Verwandte Themen