使用npm搜寻器搜寻链接时,出现错误:

C:\Users\ryani\Desktop\JavaScript\crawler\crawler.js:15
                                $('a').each(function(index, value) {
                                      ^

TypeError: Cannot read property 'each' of undefined


我尝试设置超时和各种调试技术...我不确定为什么它变得不确定。当我将代码放在html页面上的标签中时,它可以正常工作。

crawler.js:

var Crawler = require("crawler");

var c = new Crawler({
    "maxConnections":10,

    "callback":function(error, res, $) {

        if (error) {
            console.log("error");
            console.log(error);
        } else {
            $('a').each(function(index, value) {
                console.log($(this).attr('href'));
                //c.queue(href)
            });
        }
    }
});

c.queue('http://www.google.com');

最佳答案

问题是您尚未初始化Cheerio(var $ = res。$;)。

试试这个,它可以从提供的网址中提取所有喜欢的内容...

var Crawler = require("crawler");

var c = new Crawler({
    maxConnections: 10,
    // This will be called for each crawled page
    callback: function(error, res, done) {
        if (error) {
            console.log(error);
        } else {
            var $ = res.$;
            var links = [];

            $('a').each(function(i, elem) {
                links[i] = $(this).attr('href');
            });
            // $ is Cheerio by default
            //a lean implementation of core jQuery designed specifically for the server
            console.log(links);
        }
        done();
    }
});

c.queue('http://www.google.com');

关于jquery - 使用NPM搜寻器搜寻Node.js错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44298433/

10-13 04:53