node简单爬虫request简单运用

const request = require('request');
const iconv = require('iconv-lite');
const jsdom = require('jsdom').JSDOM;
const fs = require('fs')
const BS_URL = 'https://www.menworld.org'

request({
    url: `${BS_URL}/fanhao/`,//请求路径
    method: "GET",//请求方式,默认为get
    headers: {//设置请求头
        "content-type": "application/json",
    },
    encoding: null
    // body: JSON.stringify(requestData)//post参数字符串
}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        fs.mkdir('img', err => console.log(err))
        let buf = iconv.decode(body, 'gb2312').toString(); //解码gb2312
        let dom = new jsdom(buf);

        let box = dom.window.document.getElementsByClassName('lml_top')
        for (let i = 0; i < box.length; i++) {
            let href = box[i].getElementsByTagName('a')[0].href;

            request({
                url: `${BS_URL + href}`,
                encoding: null
            }, (err, res, body) => {
                if (!error && response.statusCode == 200) {
                    let buf = iconv.decode(body, 'gb2312').toString(); //解码gb2312
                    let dom = new jsdom(buf);

                    let box = dom.window.document.getElementsByClassName('article')


                    for (let j = 0; j < box.length; j++) {
                        let img = box[j].getElementsByTagName('img')[0].src;
                        request(img).pipe(fs.createWriteStream(`./img/${i}.jpg`))
                    }

                }
            })

        }

    }
});

 

转载于:https://www.cnblogs.com/kjtt/p/11498340.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值