JS/Node:- 使用 node.io 选择标记



我是初学者,正在做一个作业,使用 node.io
抓取此页面的内容http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm。

我想将 P> 标签下的文本内容保存为变量中的字符串<。

我的代码是这样的:

var nodeio = require('node.io'); var Methods = { 输入:假, 运行: 函数() { this.getHtml('http://www.nycourts.gov/reporter/3dseries/2013/2013_06966.htm', 函数(错误, $) {

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

         var content = $('P');
         this.emit(content);
    });
} }

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

这显示错误:没有与"P"匹配的元素。请帮忙..

我在执行命令时也得到了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

但是,您可以通过使用硒技术在真实浏览器上解析 HTML 文档来实现它。

下面是一个JavaScript的例子,可以在你的主机上使用node和selenium网格运行,以获得你想要的东西。 你可以参考我对问题的另一个回答 你如何让webdriverjs工作?

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();

最新更新