javascript 我第一次尝试在节点中的网络爬虫...显然我不知道如何使用异步性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 我第一次尝试在节点中的网络爬虫...显然我不知道如何使用异步性相关的知识,希望对你有一定的参考价值。

var http    = require("http");
var fs      = require("fs");
var crawler = require("simplecrawler");
var cheerio = require("cheerio");
var util    = require('util');
var exit    = require('exit');

var log = console.log.bind(console);
function str(a) {return util.inspect(a, false, null);}

var url = "https://gist.github.com/matthewmorrone1?page=3";

crawler.initialProtocol = "https";
crawler.maxDepth = 1;
var out = 0;

crawler.crawl(url, function(queueItem, responseBuffer, response){
    log(url);
    if(out === 1) {
        exit();
    }
    var $ = cheerio.load(responseBuffer);
    var links = $("a").map(function() {
        return [$(this).find("span strong").html(), +$(this).attr("href")];
    }).filter(function() {
        return this[0];
    });
    out++;
    fs.writeFile("out.txt", /*str(queueItem)+"\n\n"+*/Array.prototype.join.call(links, "\n")/*+"\n\n"+str(response)*/, function(err) {
        if(err) {
            log(err);
        } else {
            log("The file was saved!");
        }
    });
}, function(queueItem) {
    log("fail");
});

以上是关于javascript 我第一次尝试在节点中的网络爬虫...显然我不知道如何使用异步性的主要内容,如果未能解决你的问题,请参考以下文章

网络爬虫之动态内容爬取

使用 matplotlib 在网络中设置动态节点形状

JavaScript 中的节点

如何在 R 中删除 igraph 中的节点?

可见即可爬:快速上手 Selenium

《python3网络爬虫开发实战》--Ajax数据爬取