2011-01-17 21 views
15

Sto cercando di recuperare i dati dalla pagina this usando wget e curl in PHP. Come puoi vedere usando il tuo browser, il risultato predefinito è 20 elementi ma impostando il parametro GET iip sul numero x, posso recuperare x articoli, ad esempio http: // www.example.com/ foo? A = 26033 & b = 100Curl e wget: perché non viene utilizzato il parametro GET?

Il problema è che il parametro iip funziona solo nei browser. Se provo a recuperare l'ultimo collegamento usando wget o curl, vengono restituiti solo 20 elementi. Perché? Prova questo alla riga di comando:

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

Perché non posso utilizzare il parametro GET iip?

risposta

33

provare ad aggiungere citazioni:

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

Il & ha funzionalità speciali sulla linea di comando che è probabile che la causa dei problemi.

+0

Impressionante, grazie, che funziona dalla shell! Il problema è che in realtà sto usando questo da php, quindi immagino che devo solo racchiudere il ricciolo nelle virgolette? – caxpeyr

3

Prova a citare l'argomento. Almeno in cmd, & viene utilizzato per delimitare due comandi eseguiti singolarmente.

2

Dovrete racchiudere l'URL sia "o', dal momento che il & ha un significato speciale in shellscript ... Che ti do:

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

& è una parola riservata in guscio Basta scappare così \&

Problemi correlati