Curl и wget: почему не используется параметр GET?

Я пытаюсь получить данные с этой страницы, используя wget и curl в PHP. Как вы можете видеть с помощью браузера, результатом по умолчанию является 20 элементов, но, установив для параметра GET iip значение x, я могу получить x элементов, т. е. http:// www.example.com/ foo ?a=26033&b=100

Проблема в том, что параметр iip работает только в браузерах. Если я попытаюсь получить последнюю ссылку с помощью wget или curl, будет возвращено только 20 элементов. Почему? Попробуйте это в командной строке:

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

Почему я не могу использовать параметр GET iip?


person caxpeyr    schedule 17.01.2011    source источник


Ответы (4)


Попробуйте добавить цитаты:

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

& имеет специальные функции в командной строке, которые, вероятно, вызывают проблемы.

person Gilean    schedule 17.01.2011
comment
Круто, спасибо, это работает из оболочки! Проблема в том, что я на самом деле использую это из php, поэтому я думаю, что мне просто нужно заключить вызов curl в кавычки? - person caxpeyr; 17.01.2011

Попробуйте процитировать аргумент. По крайней мере, в cmd & используется для разграничения двух команд, которые запускаются по отдельности.

person Joey    schedule 17.01.2011

Вам нужно будет заключить свой URL-адрес в "или", так как & имеет особое значение в шеллскрипте... Это даст вам:

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

& — это зарезервированное слово в оболочке. Просто убегай вот так \&

person Xavier Barbosa    schedule 17.01.2011