如何用curl/wget或者其他方式抓取多次302重定向并要求登录的网页?

大家好!
我有一个问题向大家请教。
curl我不是很熟,以前用过几次都是直接抓取不需要验证的html网页。
这次我想抓取的页面是:
这个:"https://cares.web.alcatel-lucent.com/cgi-bin/fast/view.cgi?AR=1-6620492"
但是如果在浏览器里访问这个网页的时候,会被重定向到一个SSO验证页面:"https://intranetlogin.web.alcatel-lucent.com:1040/siteminderagent/SmMakeCookie.ccc?SMSESSION=QUERY&PERSIST=0&TARGET=$SM$HTTPS%3a%2f%2fcares%2eweb%2ealcatel-lucent%2ecom%2fcgi-bin%2ffast%2fview%2ecgi%3fAR%3d1-6620492"
如下图所示:

在输入用户名和密码后可以进入内容页面。

我本来想用Linux下的curl命令或者wget命令来抓,查了网上很多资料,有的说curl用-L参数可以跟踪重定向;用-u选项提供用户名和密码进行授权。
但是我用以下命令仍然不能得到验证后的内容页面。
curl -v -k -u myuser:mypass -L "https://cares.web.alcatel-lucent.com/cgi-bin/fast/view.cgi?AR=1-6620492"

然后我用winshark抓了一个浏览器(本地机器IP为192.11.23.2)和代理服务器(135.251.33.31:80)之间的包(这里好像不能上传附件,请从这里:"http://maru.tech:8888/browser_proxy.pcap"下载。)。

在这个文件中发现第300和第436个包是两个302 Found的重定向包,所指向的地址分别是:
"https://intranetlogin.web.alcatel-lucent.com:1040/siteminderagent/SmMakeCookie.ccc?SMSESSION=QUERY&PERSIST=0&TARGET=$SM$HTTP%3a%2f%2fcares%2eweb%2ealcatel-lucent%2ecom%2fcgi-bin%2ffast%2fview%2ecgi%3fAR%3d1-6620492"

"https://intranetlogin.web.alcatel-lucent.com:1040/login/login_login_intranet1_https_cares.html?TYPE=33554433&REALMOID=06-74ffb716-1721-4d9b-84ea-99126b91c132&GUID=0&SMAUTHREASON=0&METHOD=GET&SMAGENTNAME=$SM$oVcoNP6ZmVxXmgw%2bkWmUFhjiqFpqn%2btBGj6adK2eBdxXbebN%2fWEZ2XkXuJ787kVm&TARGET=$SM$HTTP%3a%2f%2fcares%2eweb%2ealcatel-lucent%2ecom%2fcgi-bin%2ffast%2fview%2ecgi%3fAR%3d1-6620492"

而第298、431和747分别是三次HTTP请求,请求的地址分别是:
"http://cares.web.alcatel-lucent.com/cgi-bin/fast/view.cgi?AR=1-6620492"
"http://cares.web.alcatel-lucent.com/cgi-bin/fast/view.cgi?AR=1-6620492&SMSESSION=NO"
"http://cares.web.alcatel-lucent.com/cgi-bin/fast/view.cgi?AR=1-6620492"

请问这样网页应该如何用命令或者程序登录并抓取呢?
如果Linux下的curl或者wget做不到的话,用php或者perl能做到吗?

希望得到大家的帮助!
谢谢!

查看回复