通过cronjob发送action = updatenow到服务器?

时间:2011-09-12 12:10:16

标签: curl cron wget postdata

我是网站的成员,每当我访问网站时,我都会收集游戏的统计数据,当我按下更新按钮时...我希望这一天自动发生一次,我被告知这应该可以通过cronjob ...

页面为:http://bfbc2.statsverse.com/stats/ps3/ChiefOfVikings/

棘手的部分是,更新是由javascript触发的..但据我所知,javascript只是这样:

$.ajax(
  {
    type:"POST",
    data: { action: "updatenow" },
  })
}

(不确定)

任何人都可以帮我找到通过cronjob每天自动触发更新的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用curl执行此操作。 Curl允许您构建url GET和POST以模仿浏览器操作(还支持其他HTTP类型)。你可以通过做类似的事情来使卷曲工作:

curl -L -i -v -c sitecookie.txt -b sitecookie.txt -d action=updatenow http://bfbc2.statsverse.com/stats/ps3/ChiefOfVikings/

选项是

  • -L =关注重定向(HTTP 301或302)
  • -i =包含从输出
  • 中的服务器返回的HTTP标头
  • -v =详细
  • -c sitecookie.txt =将cookies写入sitecookie.txt
  • -b sitecookie.txt =在将数据发送到网址时从sitecookie.txt读取Cookie
  • -d action=updatenow = HTTP POST操作=更新到网址

如果服务器是HTTPS加密的,您可能还需要-k。有关更多选项和文档,请参阅curl manpage

最后要注意的是,你发布的网址必须是ajax发送给的网址。

从命令行开始工作后,将其放入脚本中,然后每天从cronjob运行脚本。