簡體   English   中英

我的使用node.js的網絡爬蟲沒有顯示預期的輸出?

[英]My web-crawler with node.js didn't display the expected output?

這是我使用cheerio庫的node.js網絡爬蟲:

var request = require('request');
var cheerio = require('cheerio');
var fs = require('fs');
var urls = [];

request('http://www.reddit.com', function(err, resp, body){
    if(!err && resp.statusCode == 200){
        var $ = cheerio.load(body);
        $('a.title may-blank').each(function(){
            var url = this.attr('href');
            urls.push(url);
        });
        console.log(urls);
    }
});

但是當我運行它時,得到以下輸出:

[] 

而不是數組中的25個鏈接。

我做錯了什么?

我該如何解決?

我猜may-blank類,所以您需要一個. 在它前面:

$('a.title .may-blank').each(...
// Here ---^

...雖然目前來說, a.title .may-blank與我的reddit主頁上的任何元素都不匹配; 沒有a.title .may-blank元素是a.title 后代

如果你想要a有兩個類元素title ,並擁有一流的may-blank ,除去之前的空間.may-blank ; 對我來說,目前有36個:

$('a.title.may-blank').each(...
//        ^-- no space

或者只是.may-blank匹配167。

如果我沒有記錯的話,還有一點tpyo,標簽選擇器應該是“ title may-blank”,注意空格后還是空格,或者您應該將選擇器更改為“ ^⁼”,以便更寬恕,希望會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM