我正在使用一個node.js項目(使用Wikistream作爲基礎,因此不完全是我自己的代碼),它實時傳輸了wikipedia編輯。該代碼將每個編輯分解爲其組成部分並將其作爲對象存儲(請參閱要點https://gist.github.com/2770152)。其中一個部分是URL。我想知道是否有可能在解析每個編輯時爲每個編輯顯示預編輯和編輯後的維基百科頁面之間的差異的URL,獲取差異(在一個名爲「diffchange diffchange-inline」的跨度類內部) ,例如)並將其添加爲該對象的另一個屬性。對不,它可能只是一個字符串,不必完全結構化。即時從node.js數據流中刮取網址
我使用nodeio嘗試,並有一些像這樣的代碼(我特別想只刮已標記的評論(編輯米[6])儘可能破壞):
if (m[6].match(/vandal/) && namespace === "article"){
nodeio.scrape(function(){
this.getHtml(m[3], function(err, $){
//console.log('getting HTML, boss.');
console.log(err);
var output = [];
$('span.diffchange.diffchange-inline').each(function(scraped){
output.push(scraped.text);
});
vandalContent = output.toString();
});
});
} else {
vandalContent = "no content";
}
當它碰到條件語句時,它會擦除一次,然後程序關閉。它不會將所需內容存儲爲對象的屬性。如果條件不滿足,它會將vandalContent屬性設置爲「無內容」。
我想知道的是:是否有可能在飛行中像這樣刮?是否會讓程序停滯不前?還有其他建議的方法來獲得類似的結果嗎?
是的,你肯定是對的(console.log沒有吐出,這表明我可能會遇到其他問題,在這裏)。重新思考從每個網址獲取內容並以某種方式將其附加到每個編輯對象的方式可能是更好的方法?我對節點相當陌生。 – roy
我會考慮這個問題,因爲這個問題會得到答案,我可能最好反思如何解決這個問題。謝謝。 – roy