简易nodejs爬虫抓取博客园指定用户的文章及浏览量

简介: 需要安装nodejs和cheerio模块实现了自定义用户,自定义页数,抓取完毕自动停止无重复可以按需修改文章类和评论的类名 用法:首先 npm install cheerio 执行 node cnblog [username]文件结果保存在res/cnblog.

需要安装nodejs和cheerio模块

实现了自定义用户,自定义页数,抓取完毕自动停止无重复

可以按需修改文章类和评论的类名

 

用法:

首先 npm install cheerio 

执行 node cnblog [username]

文件结果保存在res/cnblog.txt

//cnblog.js
var http = require('http') var fs = require('fs') var path = require('path') var cheerio = require('cheerio') var str = ''; var n = 1 var byte = 0; grab({ user:process.argv[2] || 'txxt', /*配置博客园用户名*/ pages:10, /*配置要抓取的总页数*/ cb:function(){saveFile(str) }, postClass:'.day', /*文章的类名*/ commentClass:'.postDesc' /*文章评论的类名*/ }) /*数据获取*/ function grab(opt) { var prefix = 'http://www.cnblogs.com/' + opt.user + '/default.html?page=' opt.url = prefix + n; http.get(opt.url, function(res) { if(res.socket.bytesRead != byte){ //根据byte大小判断网页,防止重复 var go = true; byte = res.socket.bytesRead } else { var go = false; } var html = ''; res.on('data', function(data) { html += data; }) res.on('end', function() { if(go){ str += '\r\n' + '第' + n + '页开始' + '\r\n' filter(html) str += '\r\n' +'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' + '\r\n'; console.log('第' + n + '页抓取完毕'); } }) res.on('end', function() { n = n + 1; if (n <= opt.pages && go) { grab(opt) } else { opt.cb && opt.cb() } }) }).on('error', function() { console.log('获取数据出错') }) function filter(html) { var $ = cheerio.load(html) var post = $(opt.postClass); post.each(function(item) { var title = $(this).find('.postTitle a').text(); str += '\r\n' + title var foot = $(this).find(opt.commentClass).text(); var reg = /\(\d+\)/ var comment = reg.exec(foot)[0]; comment = comment.replace('(',''); comment = comment.replace(')',''); str += '浏览量>>>>' + comment }) } } function saveFile(content) { fpath = path.join(__dirname, './res/cnblog.txt') fs.writeFile(fpath, content, function(err) { if (err) { console.log('写入失败') } console.log(str) }) }

  

 

相关文章
|
4天前
|
数据采集 数据可视化 数据挖掘
Python爬虫实战:抓取网站数据并生成报表
本文将介绍如何使用Python编写简单而高效的网络爬虫,从指定的网站上抓取数据,并利用数据分析库生成可视化报表。通过学习本文内容,读者将能够掌握基本的爬虫技术和数据处理方法,为日后开发更复杂的数据采集与分析工具打下坚实基础。
|
2月前
|
数据采集 大数据 调度
利用aiohttp异步爬虫实现网站数据高效抓取
利用aiohttp异步爬虫实现网站数据高效抓取
|
14天前
|
数据采集 JSON JavaScript
Python爬虫案例:抓取猫眼电影排行榜
python爬取猫眼电影排行榜数据分析,实战。(正则表达式,xpath,beautifulsoup)【2月更文挑战第11天】
43 2
Python爬虫案例:抓取猫眼电影排行榜
|
3月前
|
数据采集 数据库
爬虫增量抓取
爬虫增量抓取
107 3
|
11天前
|
数据采集 JavaScript 前端开发
分享58个NodeJs爬虫源码总有一个是你想要的
分享58个NodeJs爬虫源码总有一个是你想要的
16 4
|
21天前
|
数据采集 Web App开发 JavaScript
 nodejs爬虫框架
 nodejs爬虫框架
31 0
|
3月前
|
数据采集 NoSQL 关系型数据库
Go语言网络爬虫工程经验分享:pholcus库演示抓取头条新闻的实例
网络爬虫是一种自动从互联网上获取数据的程序,它可以用于各种目的,如数据分析、信息检索、竞争情报等。网络爬虫的实现方式有很多,不同的编程语言和框架都有各自的优势和特点。在本文中,我将介绍一种使用Go语言和pholcus库的网络爬虫工程,以抓取头条新闻的数据为例,展示pholcus库的功能和用法。
344 0
Go语言网络爬虫工程经验分享:pholcus库演示抓取头条新闻的实例
|
7月前
|
数据采集 JavaScript API
Python爬虫抓取经过JS加密的API数据的实现步骤
Python爬虫抓取经过JS加密的API数据的实现步骤
|
3天前
|
数据采集 数据可视化 数据挖掘
使用Python编写Web爬虫实现数据采集与分析
在当今信息化时代,数据是企业发展和决策的重要依据。本文将介绍如何使用Python编写Web爬虫来实现对特定网站数据的自动采集,并结合数据分析技术,为读者展示如何利用爬虫技术获取有价值的信息并进行有效的数据处理和分析。
|
7天前
|
数据采集 存储 数据挖掘
Python 爬虫实战之爬拼多多商品并做数据分析
Python爬虫可以用来抓取拼多多商品数据,并对这些数据进行数据分析。以下是一个简单的示例,演示如何使用Python爬取拼多多商品数据并进行数据分析。

相关产品

  • 云迁移中心