2013-10-31 17 views
2

我是一名初學者,並使用node.io
http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm來完成此頁面的內容。JS /節點: - 使用node.io選擇一個標籤

我想將P>標記下的文本內容保存爲變量中的字符串。

我的代碼是這樣的:

var nodeio = require('node.io'); var methods = { input: false, run: function() { this.getHtml(' http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm ', function(err, $) {

 //Handle any request/parsing errors 
     if (err) this.exit(err); 


     var content = $('P'); 

     this.emit(content); 
    }); 
} } 

exports.job = new nodeio.Job({timeout:10}, methods);

這表示錯誤:沒有匹配的 'P' 元素。

$ ./node_modules/.bin/node.io query http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm P 

的根本原因是沒有結束的那頁</P>和node.io不支持自動校正像現代網絡等不良HTML:在執行命令時,請幫助..

回答

1

Error: No elements matching 'P'太瀏覽器。而它的工作原理以及查詢<blockquote>時:

$ ./node_modules/.bin/node.io query http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm blockquote 

但是,您可以通過在真正的瀏覽器與selenium技術解析HTML文檔做到這一點。

下面是示例javascript可以在主機上運行節點和硒網格以獲得所需內容。你可以參考我的其他回答問題How do you get webdriverjs working?

var webdriverjs = require('webdriverjs'); 

var client = webdriverjs.remote({ 
    host: 'localhost', 
    port: 4444, 
    desiredCapabilities: { 
    browserName: 'safari', // you can change this accordingly 
    version: '7', 
    platform: "MAC" // you can change this accordingly 
    } 
}); 

client.init(); 

client.url('http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm') 
    .getText("P",function(err, text) { console.log (text)}).call(function() {}); 

client.end(); 
+0

謝謝shawnzhu – Rajat

相關問題