俺寻思这node版的漫画爬虫没人要捏...

一直垂涎网络爬虫程序,但是俺只是一个渣渣前端,对爬虫真是难以下手啊,当第一次听到了node这奇葩可以用js去写后端的时候,就想着能不能用node去实现爬虫呢?知道可以的我,就像20几年的俺头一次看见了黄花大闺女一般,情难自抑~ 于是乎我本人:

干劲 +100

兴趣 +100

但是啊!!关键是

不懒惰 +0

懒属性一点依然“皮实”,所以迟迟也没有开始上手去做爬虫...

直到!上周看海贼王不过瘾,决定看漫画,但是网路不好啊,看的闹心,于是就终于痛定思痛,写下了 let http = require('http');

昨天终于写完了,就分享给对这个感兴趣的小伙伴吧~

let http = require('http');
let colors = require('colors');
let fs = require('fs');
let cheerio = require('cheerio');

const INIT = {
    pagePath: '/02/Vol_001/index_0.html',
    mounts: 100000
}

if(process.argv.length !== 2) {
    let begin, mounts;
    process.argv.forEach(item => {
        if (item.includes('begin')) {
            begin = item.split('=')[1]
        }
        if (item.includes('mounts')) {
            mounts = item.split('=')[1]
        }
    })
    INIT.pagePath = begin ? String(begin) :  INIT.pagePath;
    INIT.mounts = mounts ? Number(mounts) :  INIT.mounts;
}

// 初始页信息
let pageInfo = {
    hostname: 'manhua.fzdm.com',
    path: INIT.pagePath
}

// 初始图片信息
let imgInfo = {
    hostname: 'p0.xiaoshidi.net',
    path: ``
}

/**
 * @description 请求当前页面信息
 * @param {Object} pageInfo - 初始页信息
 * @param {string} pageInfo.hostname - 页域名地址
 * @param {string} pageInfo.path - 路径
*/
let getPageInfo = (address) => {
    let client = http.request({
        hostname: address.hostname,
        path: address.path
    }, (res) => {
        let contents = '';
        res.on('data', (callbackData) => {
            console.log('=======响应开始'.red);
            contents += callbackData;
        })
        res.on('end', () => {
            let $ = cheerio.load(contents);
            let sContentsInfo = (/
                    
                    

你可能感兴趣的:(爬虫,前端,后端)