Curl и wget: почему не используется параметр GET? - PullRequest
16 голосов
/ 17 января 2011

Я пытаюсь получить данные с этой страницы, используя 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?

Ответы [ 4 ]

34 голосов
/ 17 января 2011

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

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

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

3 голосов
/ 17 января 2011

& - зарезервированное слово в оболочке. Просто убежать, как это \&

3 голосов
/ 17 января 2011

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

curl -O "http://www.objektvision.se/annonsorer?ai=26033&iip=100"
wget "http://www.objektvision.se/annonsorer?ai=26033&iip=100"
3 голосов
/ 17 января 2011

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

...