美文网首页
node抓取数据

node抓取数据

作者: Luo_2a25 | 来源:发表于2017-10-19 17:29 被阅读0次

使用node抓取某个页面的所以新闻链接及相关文章链接里面的具体内容

var  eventproxy=require('eventproxy');

var   request=require('superagent');

var  superagent=require('superagent-charset')(request);

var   cheerio=require('cheerio');

var  url=require('url');

var  fs=require('fs');

var  cnodeUrl='http://gd.qq.com/l/gdfabu/gdfbzwjj/more.htm';

var  sql=require('mssql');

superagent.get(cnodeUrl).charset()

.end(function(err, res) {

if(err) {

returnconsole.error(err);

}

var   topicUrls= [];

var   $ =cheerio.load(res.text,{decodeEntities:false});//cheerio like jquery

$('.list01 li a').each(function(idx, element) {

var    $element=$(element);

var   href=url.resolve(cnodeUrl,$element.attr('href'));

var   title=$element.text();

topicUrls.push({href:href,title:title});

});

var  fileStr="";

var  ep=new eventproxy();

ep.after('topic_html',topicUrls.length,function(topics) {

var   topics= topics.map(function(topicPair) {

var  topicUrl= topicPair[0];

var   topicHtml= topicPair[1];

var   $=cheerio.load(topicHtml,{decodeEntities:false});

var   cm=$('#Cnt-Main-Article-QQ').html()||"";

fileStr+="title:"+topicUrl.title+";url:"+topicUrl.href+/*";content:"+cm+*/"\n";

return({

title:topicUrl.title||"无",

url:topicUrl.href,

comment:cm

});

});

//console.log(topics);

//write file

/* fs.writeFile("node4.txt",fileStr,function(err){

if(err) return console.error(err);

});*/

// insert into database

var  conUrl="mssql://sa:123456@localhost:1433/text";

sql.connect(conUrl,function(err, conn) {

if(err) {

console.log(err);

return;

}

constrequest=newsql.Request();

topics.forEach(function(topic){

var  sqlL="INSERT INTO press (Title, Content, Origin) VALUES ('"+topic.title+"','"+topic.comment+"','"+topic.url+"')";

request.query(sqlL,function( e, r ) {

if(e) {

console.log(e);

}

// console.log(r);

console.log("success");

});

});

});

});

topicUrls.forEach(function(topicUrl) {

superagent.get(topicUrl.href).charset()

.end(function(err, res) {

ep.emit('topic_html', [topicUrl, res.text]);

});

});

});

eventproxy这前四个模块自己install,这个抓取方法不是最后,可以采用async去代替eventproxy,eventproxy是一次性抓取,容易  被别人发现,async可以控制抓取次数

写入数据库的自己模拟个,写入txt效果如下图:

相关文章

  • node抓取数据

    使用node抓取某个页面的所以新闻链接及相关文章链接里面的具体内容 var eventproxy=require(...

  • Node小结

    最近工作中用到了Node,实现了一个数据抓取处理的自动化工具。平时的使用中,主要还是依赖各种库。对Node本身的一...

  • 04_中央气象台

    简述 再次进行分析抓取气象数据练习,本节主要抓取预报气象数据。抓取数据请勿存档,商用请联系官方。 爬取对象 抓取中...

  • iOS 防止 Charles 抓取数据

    iOS 防止 Charles 抓取数据 iOS 防止 Charles 抓取数据

  • 03_中央气象台

    简述 继续分析抓取气象数据练习,本节主要抓取实时气象数据。抓取数据请勿存档,商用请联系官方。 爬取对象 抓取中央气...

  • node抓取网页

  • requests-code说明

    Charles抓取的request的raw数据 chrome抓取的network数据

  • 人人都会数据分析大纲

    -实现数据分析需要有哪些东西? -有数据 --数据从何而来? ---自有数据 ---爬虫抓取 ----爬虫抓取的步...

  • 京东商城商品数据批量抓取数据爬虫Node

    前言 标题只是献给搜索引擎,增加搜索命中率 1. 任意进入一个京东商城的一个商品页(移动端) 2. 在networ...

  • Node.js Request+Cheerio实现一个小爬虫-基

    Node.js Request+Cheerio实现一个小爬虫-基础功能实现1:内容抓取Node.js Reques...

网友评论

      本文标题:node抓取数据

      本文链接:https://www.haomeiwen.com/subject/hbcpuxtx.html