2013-07-24 2 views
2

Я написал сценарий phantomjs для утилизации Hoover. Ниже приведен мой поток:Phantomjs пишет сбрасываемые данные в базу данных

1: Получить данные из базы данных с помощью API Nodejs.

2: В то время я получаю 10 строк, передаю эти строки по одному на Веб-сайт, откладываю его (проблема здесь). Я как-то хочу сохранить результаты с помощью Scrapped в массив или что-то, а затем передать эти данные обратно API узла для обновления базы данных в Azure).

Прямо сейчас я могу получить данные из azure с помощью API-интерфейсов nodejs, а также удалить их с помощью phantomjs. Моя единственная проблема заключается в том, как хранить результаты в хранилище tempopary или массиве, который затем может быть передан API-интерфейсу nodejs для обновления база данных в лазурной.

ответ

4

(я использую CasperJS - это добавляет слой PhantomJS, но я думаю, что это может также работать в PhantomJS)

Вы можете иметь CasperJS сделать вызов AJAX для вашего внутреннего интерфейса с данными, который вы хотите хранить.

Сделать CasperJS включают сценарий контента на каждой странице посещений:

var casper = require('casper').create({ clientScripts: ['content.js'] });

Тогда в content.js:

function sendToServer(theData){ 
    var xhr2 = new XMLHttpRequest(); 
    xhr2.open('POST', your_server_url, true); 
    xhr2.send(theData); 
} 

Теперь вы можете позвонить sendToServer с casper.evaluate из вашего сценария.

И не забудьте включить это в принимающем приложении (или см this module):

res.writeHead(200, { 
    'Access-Control-Allow-Origin': '*' 
}); 

иначе ваш Аякса потерпит неудачу. Возможно, вам придется добавить маршрут OPTIONS, который также возвращает заголовки CORS. Другим решением для этого является отключение проверки перекрестного происхождения на PhantomJS с помощью командной строки.

+0

Можете ли вы предоставить пример кода, который мы можем назвать ajax из phantomjs. – shivaP

+0

@shivaP только что обновлен с помощью кода moar. Играйте с ним - это сработало в моем случае (я использовал casperjs, который использует фантом и добавляет некоторые из его собственных вещей) - в вашем случае вы должны найти аналогичную функциональность в фантоме (сценарии содержания и оценить) –

+0

Спасибо, Buddy :) – shivaP

Смежные вопросы