您的位置:首页 > Web前端 > Node.js

Nodejs单页面爬虫

2020-07-14 05:35 127 查看

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('此新闻非原创');
}
});

}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: