我想写一个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,所以你可以做你想要的数据。