node获取网页指定内容(标题、摘要、图片)

首先有node,然后是引入模块,这是必备

fs模块写入文件
path模块定义文件路径
request模块定义发送请求(requests可能要好点,各位如果需要改的自行百度)
cheerio模块定义内容加载成DOM(个人理解)
(不需要把内容转换成文本的可以不需要fs,psth模块)

这里我是需要网页中meta标签中的值

代码中有指定的名称,根据名称获取指定标签值

let fs = require('fs') // 读写文件
let path = require('path') // 定义文件路径
var request = require('request');
var cheerio = require('cheerio');
var options = {
    'url': 'https://mp.weixin.qq.com/s/P8q3CjZdH-GCtB2VHVy_qg',
    'headers': {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
    }
};

request(options, function(error, response, body) {
    if (error) throw new Error(error);
    // console.log(body);
    // fs.writeFile(path.resolve(__dirname, 'index.html'), body, () => { //将请求得到的资源文件写入本地项目文件夹下的index.html(名字可改)中
    //     console.log("保存成功") // 数据爬取成功,输出“保存成功”
    // })
    getdom(body)
});

function getdom(html) {
    var $ = cheerio.load(html);
    //后面就像用jq一样获取页面元素就可以了
    // var a = $('meta').slice(last, last - 8)
    var obj = {}
    var desc = $('[name=description]').attr('content')
    var title = $('[property=og:title]').attr('content')
    var img = $('[property=og:image]').attr('content')
        // console.log(desc);
        // console.log(title);
        // console.log(img);
    obj = {
        'desc': desc,
        'title': title,
        'img': img
    }
    console.log(obj);
    fs.writeFile(path.resolve(__dirname, 'data.html'),
        html // 转换JSON格式
        , () => {
            console.log("保存成功")
        })
}

 这是获取到网页的指定内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值