Мне нужно периодически входить в систему и очищать некоторые данные с определенного сайта. Я написал сценарий CasperJS для запуска на Heroku, чтобы позаботиться об этом.
Вот что я хочу сделать:
app.get('/test', function(request, response) {
scrapeStuff(function(data) {
response.send(data);
});
});
Затем, на последнем этапе жуткого сценария:
spooky.then(function() {
callback(this.getHTML());
});
К сожалению, по какой-то причине это не представляется возможным, так как функция, переданная в scrapeStuff
, не попадает внутрь .then()
. (не могу найти переменную: обратный вызов) Вместо этого я должен использовать this.emit()
и отслеживать его с помощью spooky.on
- вы можете видеть пример того, как это делается здесь.
Проблема с использованием emit заключается в том, что я хочу получить HTML-код очищенной страницы по запросу. Итак, я хочу получить доступ к /scrape
, затем подождать 10 секунд, пока он работает, и получить страницу, а не вызывать ее, предположить, что это удалось, и запросить другой URL-адрес, чтобы наконец получить HTML.
Можно ли это сделать с помощью SpookyJS? Возможно, есть лучший способ напрямую использовать CasperJS.