我本質上是試圖在飛行中刮掉一個頁面。當你點擊這個網址時,它會輸出刮板作業的結果。一切都非常好,第一次。第二次嘗試它(使用通過job.options.args傳遞的不同參數),它甚至不會執行node.io作業的run()函數。 scrape_result
第二次返回空(我期望一個對象)。Node.io刮擦作業第二次失敗
有什麼想法?我如何確保第二次獲得新結果?對於我的工作刮我幾乎完全使用例如#3從這裏開始:https://github.com/chriso/node.io/wiki/Scraping
摘自scraper.js(其餘像例如#3:https://github.com/chriso/node.io/wiki/Scraping)
run: function() {
var book = this.options.args[0].book;
var chapter = this.options.args[0].chapter;
this.getHtml('http://www.url.com' + book + '/' + chapter + '?lang=eng', function(err, $) {
然後我app.js
var scrip_scraper = require('./scraper.js');
app.get('/verses/:book/:chapter', function (req, res) {
var params = {
book: req.param('book'),
chapter: req.param('chapter')
}
scrip_scraper.job.options.args[0] = params;
//scrip_scraper.job.options.args.push(chapter);
console.log(scrip_scraper.job.options.args);
nodeio.start(scrip_scraper, function (err, scrape_result) {
console.log(scrape_result);
}, true);
}); //app.get('/verses/:book/:chapter')
我認爲,爲了幫助你,我們需要看到更多你的代碼。你是如何創建'scrip_scraper'的?我不認爲'scrip_scraper.job.options.args [0] = params;'正在做你想做的事情。 – Max
@Max我在上面添加了更多的代碼。我找不到將爭論傳遞給我的工作的正確方法。使用options.args [0]是我能想到的最好的。它第一次美妙地運作。第二次,run()甚至不會執行。 –