1

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

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

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

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

(虽然不确定)

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

4

1 回答 1

0

你可以用curl做到这一点。Curl 允许您构造 url GET 和 POST 来模拟浏览器操作(也支持其他 HTTP 类型)。您可以通过执行以下类似操作来使 curl 工作:

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= 详细
  • -csitecookie.txt = 将 cookie 写入 sitecookie.txt
  • -bsitecookie.txt = 向 url 发送数据时从 sitecookie.txt 读取 cookie
  • -d action=updatenow= HTTP POST action=updatenow 到 url

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

最后要注意的一件事,您发布到的 url 必须是 ajax 发送到的那个。

一旦你从命令行开始工作,把它放在一个脚本中,然后每天从一个 cronjob 运行脚本。

于 2011-09-13T08:31:14.777 回答