我是初学者,并使用node.io执行分配以删除此页面的内容 http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm。
我想保存<< P>标签作为变量中的字符串。
我的代码是:
var nodeio = require('node.io'); var methods = { 输入: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'的元素。请帮忙..
答案 0 :(得分:1)
执行命令时我也得到Error: No elements matching 'P'
:
$ ./node_modules/.bin/node.io query http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm P
根页原因是该页面中没有结尾</P>
,而node.io不支持对现有Web浏览器等格式错误的HTML进行自动更正。虽然它在查询<blockquote>
时效果很好:
$ ./node_modules/.bin/node.io query http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm blockquote
但是,您可以通过使用selenium技术在真实浏览器上解析HTML文档来实现。
以下示例javascript可以与您的主机上的节点和selenium网格一起运行,以获得您想要的内容。你可以参考我对问题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();