отправка действия = updatenow на сервер через cronjob? - PullRequest
1 голос
/ 12 сентября 2011

Я являюсь участником сайта, где статистика из игры собирается каждый раз, когда я захожу на сайт, когда я нажимаю кнопку обновления. Я хотел бы, чтобы это происходило один раз в день автоматически, и мне сказали что это должно быть возможно через cronjob ...

страница: http://bfbc2.statsverse.com/stats/ps3/ChiefOfVikings/

Сложность в том, что обновление инициируется JavaScript, но, насколько я могу судить, JavaScript только такой:

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

(хотя не уверен)

Может ли кто-нибудь помочь мне найти способ автоматического запуска обновления один раз в день через cronjob?

1 Ответ

0 голосов
/ 13 сентября 2011

Вы можете сделать это с помощью 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 = многословно
  • -c sitecookie.txt = запись файлов cookie на sitecookie.txt
  • -b sitecookie.txt = читать файлы cookie из sitecookie.txt при отправке данных на URL
  • -d action=updatenow = HTTP POST action = обновление теперь до URL

Вам также может понадобиться -k, если сервер зашифрован по протоколу HTTPS. См. man-страницу curl для получения дополнительной информации и документации.

И еще одна заключительная вещь: URL, который вы POST должны указывать на тот, который отправляет ajax.

Как только у вас это сработает из командной строки, поместите его в скрипт, затем запускайте скрипт из cronjob каждый день.

...