JQuery.contents无法使用jsdom

时间:2014-08-18 16:50:34

标签: javascript jquery node.js web-crawler jsdom

此代码在浏览器中有效,但在Node.js中(使用JSDom + Crawler),我返回undefined

$('div').find('.class').contents()[0].wholeText

关于如何解决这个问题的任何想法?

BTW,当我尝试在nodejs中对其进行字符串化时,它会返回错误Circular defintion

完整代码:

var Crawler = require("crawler").Crawler;
var data = {}
var c = new Crawler({
  maxConnections: 10,
  skipDuplicates: true,
  // This will be called for each crawled page
  callback: function(error, result, $) {

    // $ is a jQuery instance scoped to the server-side DOM of the page
    $("#link > ul > li > a").each(function(index, a) {
      c.queue(a.href);
    });
    $("[id^=enfr]").each(function(index, a){
      var fr = $(this).find('.FrWrd strong').html().replace(/<(?:.|\n)*?>/gm, '')
      var to = $(this).find('.ToWrd').contents()[0]
      console.log(fr + '\t\t\t\t\t' + to)
    })
  }
});

// Queue just one URL, with default callback
c.queue("http://www.wordreference.com/enfr/0");

1 个答案:

答案 0 :(得分:0)

好的最后我通过使用&#34; stock&#34;来解决它。 DOM库:

  var to = $(this).find('.ToWrd').get(0).firstChild.nodeValue