2011-01-17 20 views
15

Estoy tratando de obtener datos de la página this usando wget y curl en PHP. Como puede ver al usar su navegador, el resultado predeterminado es de 20 elementos pero al configurar el parámetro GET iip en el número x, puedo buscar x elementos, es decir, http: // www.example.com/ foo? A = 26033 & b = 100Curl y wget: ¿por qué no se usa el parámetro GET?

El problema es que el parámetro iip solo funciona en navegadores. Si trato de buscar el último enlace usando wget o curl, solo se devuelven 20 elementos. ¿Por qué? Pruebe esto en la línea de comandos:

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

¿Por qué no puedo usar el parámetro GET iip?

Respuesta

33

trate de añadir citas:

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

El & tiene una funcionalidad especial en la línea de comandos que probablemente está causando los problemas.

+0

Impresionante, gracias, eso funciona desde el caparazón. El problema es que en realidad estoy usando esto desde php, así que supongo que tengo que encerrar la llamada curl entre comillas? – caxpeyr

3

Prueba a citar el argumento. Al menos en cmd, & se usa para delimitar dos comandos que se ejecutan individualmente.

2

Vas a tener que incluir su URL en cualquiera de los dos "o', ya que el & tiene un significado especial en shellscript ... Eso te dará:

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

& es una palabra reservada en la cáscara Solo escapéalo así \&

Cuestiones relacionadas