Curl和wget:为什么不使用GET参数?

17

我正在尝试使用 PHP 中的 wget 和 curl 从这个页面获取数据。通过在 GET 参数中设置“iip”参数为数字 x,您可以看到在浏览器中默认结果为20项,但是如果将 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

尝试添加引号:

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

& 在命令行中具有特殊功能,这很可能会导致问题。


太棒了,谢谢,从shell中可以工作!问题是我实际上是从php中使用它,所以我想我只需要将curl调用括在引号中? - caxpeyr

3

尝试引用参数。至少在cmd中,&被用于分隔两个独立运行的命令。


3

&是shell中的保留字。可以通过这样的方式进行转义:\&


3
你需要在URL前面加上引号或单引号,因为在shell脚本中 & 有特殊意义... 这样做可以得到以下结果:
curl -O "http://www.objektvision.se/annonsorer?ai=26033&iip=100"
wget "http://www.objektvision.se/annonsorer?ai=26033&iip=100"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接