nodejs+cheerio 实现简单的网页采集(可实现简单的组装页面)

1:首先可以先获取你需要采集的网页的地址:url

2:将你需要采集的url用nodejs实现请求:

 
const cheerio = require('cheerio');
const restler = Object.assign({}, require("restler"));
import htmlObject from '../utils/html-str.js';
import functionTool from '../utils/function.js';
import md5 from 'md5';
parseHtml: function (result, link, charset) {
        let $ = cheerio.load(result);
        let linkId = md5(link);
        toolManager.charsets[linkId] = charset;
        toolManager.docs[linkId] = result;
        let $head = $('head'), $body = $('body');
        $head.append('<script type="text/javascript">' + functionTool.injectJavascript + '</script>');
        $head.append(htmlObject.injectCss);
        $body.append($(htmlObject.injectMenu));
        $body.append($(htmlObject.injectToolbar));
        $body.append($(htmlObject.injectLinkId).val(linkId));
        return $.html();
    },
processDoc(req, response) {
        let link = req.query['link'];
        restler.get(link).on('complete', function (result, res) {
            if (result instanceof Error) {
                console.log('Error:', result.message);
            } else {
                let charset = res.headers['content-type'];
                if (charset) {
                    charset = /\bcharset=(.+)(?:;|$)/i.exec(charset);
                    if (charset) {
                        charset = charset[1].trim().toLowerCase();
                    }
                }
                response.write(parseHtml(result, link, charset));
            }
        });
    }

上面的functionTool.injectJavascript为你需要嵌入到采集到的网页中的js代码

同样下面的injectCss,injectMenu,injectToolbar等分别代表样式文件与html代码

 

其中引入cheerio模块的话  可以直接操作采集下来的页面(api:https://cnodejs.org/topic/5203a71844e76d216a727d2e

通过restler模块去请求界面的话,它会帮你处理好界面中文的乱码问题,(api:https:www.npmjs.com/package/restler

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值