0

尝试开发一个脚本,将一堆 URL 作为输入,然后尝试加载页面并查看是否确实发生了重定向,然后记录最终 URL。我用这个

REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" http://m.cnbc.com`
echo "redirects to: ${REDIRECT}"

这段代码工作正常。但是,只要我将 URL 更改为http://www.cnbc.com,脚本就会将页面源代码的内容输出到终端。我假设这是因为在http://www.cnbc.com的情况下没有重定向,而在http://m.cnbc.com的情况下,因为用户代理是桌面类型的。

4

1 回答 1

1

在第二种情况下添加-o /dev/null以删除输出,-silent这样 curl 就不会显示进度:

# REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" -o /dev/null -silent http://m.cnbc.com`
# echo "redirects to: ${REDIRECT}"
redirects to: http://www.cnbc.com/
# REDIRECT=`curl -w "%{redirect_url}" --user-agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0" -o /dev/null -silent http://www.cnbc.com`
# echo "redirects to: ${REDIRECT}"                                                
redirects to: 
于 2013-04-26T19:20:01.880 回答