在 nodeJS 中使用爬虫并没有给我任何结果,但是当我在浏览器中尝试相同的代码时,它会给出。我的代码有啥问题?

Posted

技术标签:

【中文标题】在 nodeJS 中使用爬虫并没有给我任何结果,但是当我在浏览器中尝试相同的代码时,它会给出。我的代码有啥问题?【英文标题】:Using crawler in nodeJS is not giving me any result but when I am trying same code in browser it gives. What is wrong with my code?在 nodeJS 中使用爬虫并没有给我任何结果,但是当我在浏览器中尝试相同的代码时,它会给出。我的代码有什么问题? 【发布时间】:2015-09-19 22:31:40 【问题描述】:

我在nodeJS中使用爬虫如下

var c = new Crawler(
    maxConnections : 10,
    callback : function (error, result, $) 
);

c.queue([
    uri: 'https://in.linkedin.com/nhome',
    jQuery: true,
    callback: function (error, result,$) 
        var str=[];
        $("#directory>.primary>li:not(.country-search)>a",result.body).each(function()
            var tmpp=$(this).attr("href");
            str.push(tmpp);
        );
        console.log(str.length);     
    
]);

返回 0

但如果我转到“https://in.linkedin.com/nhome/”并在萤火虫中尝试以下代码

var str=[];
        $("#directory>.primary>li:not(.country-search)>a").each(function()
            var tmpp=$(this).attr("href");
            str.push(tmpp);
        );
        console.log(str.length);

它工作正常并返回 27。

我的代码哪里做错了

【问题讨论】:

【参考方案1】:

问题在于 uri

链接https://in.linkedin.com/nhome 错了,正确的 uri 是 https://in.linkedin.com/nhome/

没有“/”,它会重定向到我的抓取代码不起作用的另一个页面。

【讨论】:

以上是关于在 nodeJS 中使用爬虫并没有给我任何结果,但是当我在浏览器中尝试相同的代码时,它会给出。我的代码有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

发布到 nodejs 并返回结果

如何将 NodeJs 响应转换为嵌套的 json 响应

解组数组并没有给我任何值

如何使用 nodejs 将异步用于回调?

如何从请求中返回结果,以及在 NodeJS 中执行异步任务但没有回调之后

Nodejs爬虫进阶=>异步并发控制