Nodejs单页面爬虫

Nodejs单页面爬虫技术—许

npm install node //导入npm 所有的依赖包

//第一步导依赖包
var http = require('http');
var cheerio = require('cheerio');
//最后就是获取url链接
var url = require("url");//导入url依赖包
var testUrl="http://www.66lc.com/lcyw/202006/t20200619_1898065.shtml";//定义url地址
var p = url.parse(testUrl,true);//获取地址
console.log(p.href);//取到的值是:http://www.66lc.com/lcyw/202006/t20200619_1898065.shtml
console.log(p.protocol);//取到的值是:http:
console.log(p.hostname);//取到的值是:locahost
console.log(p.host);//取到的值是:localhost:8888
console.log(p.port);//取到的值是:8888
console.log(p.path);//取到的值是:/select?aa=001&bb=002
console.log(p.query);//取到的值是:{aa: "001", bb: "002"} 未传入true取到的值是:aa=001&bb=002
//下面2个,URL.parse(testUrl,true)必须传入true
console.log(p.query.aa);//取到的值是:001
console.log(p.pathname);//渠道的值是:/select

//第二步导向网页发起请求
http.get('http://www.66lc.com/lcyw/202006/t20200619_1898065.shtml',function(res){
    var data = '';
    res.on('data',function(chunk){//on就是代表事件的意思
        data += chunk;//data是存储,chunk网页里的源代码,把网页里的源代码放到data里
    });
    res.on('end',function(){//on就是代表事件的意思
        file(data);//调用外部方法
    })
});
//在data这个存储包里的查找你想获取的信息
function file(data) {
    var $ = cheerio.load(data);//这就是将整个网页的标签变成$符号,可获取元素的对象
    var big_div=$('.titt');//这是父级元素
    var big_home_tit=$('li');
    var big_a=$('#menu');
    var big_span=$('.info');
    var zw=$('#zw');
    var content='';
    var ca='';
    var ca1='';
    var ca2='';
    var s=[];
    var title=[];
    //新闻标题
    big_div.each(function (index,item) {
        let tmp={
            '标题':$(item).find('h1').text()
        }
        content+=JSON.stringify(tmp);
        console.log(content);
    });
    //新闻发布时间
    big_span.each(function (index,item) {
        let s1={
            '发布时间':$(item).find('span').text()
        }
        s+=JSON.stringify(s1);
        console.log(s);
    });
    //查询网页新闻正文不带html标签与新闻正文带html标签
    zw.each(function (index,item) {//each也是事件
        let a1 = {
            '新闻正文不带html标签': $(item).find('p').text(),
            '新闻正文带html标签': $(item).find('p').html()
        }
        ca2 += JSON.stringify(a1);
        console.log(ca2);
    });
    //判断此新闻是否原创
    big_span.each(function (index,item) {
        var name=$(item).find('span').eq(0).text();
        var name1='鹿城新闻网';
        console.log(name);
        if(name1=== name){
            console.log('此新闻是原创');
        }else{
            console.log('此新闻非原创');
        }
    });

}

猜你喜欢

转载自blog.csdn.net/fdsgfd43432/article/details/106899392