Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Curl and wget: why isn't the GET parameter used?

Tags:

shell

curl

wget

I am trying to fetch data from this page using wget and curl in PHP. As you can see by using your browser, the default result is 20 items but by setting the GET parameter iip to number x, I can fetch x items, i.e. http:// www.example.com/ foo ?a=26033&b=100

The problem is that the iip parameter only works in browsers. If I try to fetch the last link using wget or curl, only 20 items are returned. Why? Try this at the command-line:

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

Why can't I use the GET parameter iip?

like image 442
caxpeyr Avatar asked Jan 17 '11 13:01

caxpeyr


3 Answers

Try adding quotes:

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

The & has special functionality on the command line which is likely causing the issues.

like image 123
Gilean Avatar answered Oct 05 '22 18:10

Gilean


Try quoting the argument. At least in cmd, & is used to delimit two commands that are run individually.

like image 43
Joey Avatar answered Oct 05 '22 18:10

Joey


You'll have to enclose your URL in either " or ', since the & has a special meaning in shellscript... That'll give you:

curl -O "http://www.objektvision.se/annonsorer?ai=26033&iip=100"
wget "http://www.objektvision.se/annonsorer?ai=26033&iip=100"
like image 22
Romain Avatar answered Oct 05 '22 17:10

Romain