使用wget获取密码保护的网站(trac wiki页面)

我想写一个bash脚本,它会通知我关于trac wiki时间表的变化。 不幸的是,我不能“login”(它需要cookie的下一个login)。

wget http://someserver.com/trac/xxx/login \ --save-cookies=cookies --keep-session-cookies wget http://someserver.com/trac/xxx/login \ --load-cookies=cookies \ --save-cookies=cookies.new --keep-session-cookies\ --post-data=user=viroos&password=myPassword 

我得到:

 Error 400: Bad Request 

我也尝试了–user –password选项:

 wget --no-check-certificate --user viroos --password myPassword\ https://someserver.com/trac/xxx/timeline?ticket=on&changeset=on&milestone=on&wiki=on&blog=on&max=50&daysback=90&format=rss 

但是这只下载login页面。

我究竟做错了什么?

我觉得你非常接近解决scheme。 这应该取决于你的configuration:

 wget --no-check-certificate --user viroos --password myPassword \ --save-cookies=cookies --keep-session-cookies \ https://someserver.com/trac/xxx/login wget --no-check-certificate --load-cookies=cookies \ https://someserver.com/trac/xxx/timeline?ticket=on&changeset=on&milestone=on&wiki=on&blog=on&max=50&daysback=90&format=rss 

首先调用/ login url上的授权,并保存auth cookie。 第二个电话应该得到你想要的。

如果您在…. / trac / login url上启用了基本的自动启动function,这将起作用。

wget中的–user / – 密码标记(http URL)包含HTTP基本身份validation。 Trac有它自己的login机制,所以在这种情况下这些标志不起作用。

有一种方法可以做你想做的事情(虽然我不确定wget是否能够做到这一点),但是在花时间在这个方向之前,你是否考虑过使用TRAC时间表RSS feed ?

RSS订阅源将允许您使用您最喜爱的RSS阅读器订阅时间表更改,并收到通知。 它也将给你一个标准的XML文件,以便于parsing,所以你可以做你想要的数据。