通过node.js对个人CSDN博客爬虫,获取个人博客列表,并将改列表内容注入到Bat批处理文件中,实现浏览器自动打开预览。
1、安装依赖
npm 安装依赖包request、cheerio
— request模块是用来请求网页的
— cherrio是用来分析dom结构的(Nodejs版本的jquery)
2、爬虫获取个人CSDN博客列表
var cheerio = require('cheerio');
var request = require('request');
var createBat = require('./createbat').createBat;
var url = 'https://blog.csdn.net/zcs425171513';
var getBlogList = function () {
var urlArray = new Array();
request(url, function (err, res) {
if (err) return console.error(err);
var $ = cheerio.load(res.body.toString());
$('.text-truncate a').each(function (idx, element) {
var $element = $(element);
urlArray.push({
url: $element.attr('href')
})
})
console.log(urlArray.length);
createBat(urlArray)
});
};
getBlogList()
var $ = cheerio.load(res.body.toString());将请求响应的结果转换成dom结构,就可以利用jquery方法处理。获取对应的博客的链接地址,存放在Array中。并作为参数传入Bat文件生成的方法createBat。
有上图可知,对应的dom中$(‘.text-truncate a’)即可定位到对应的链接元素。
3、生成Bat批处理文件,并自动预览
var fs = require('fs');
var createBat = function (arr) {
var resultFile = './auto.bat',
header = '@echo off \n',
content = '',
openFirefox = 'start "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe" ',
footer = 'ping 127.0.0.1 -n "60" \n taskkill /f /t /im firefox.exe';
arr.forEach(function (item) {
content += openFirefox + item.url + '"\n'
})
if (fs.existsSync(resultFile)) {
fs.unlinkSync(resultFile)
}
fs.writeFileSync(resultFile, header + content + footer, 'utf-8')
}
module.exports = {
createBat: createBat
}
运用bat的start指令自动打开浏览器预览链接内容。循环编辑博客列表地址,拼接start指令需要的内容。并将拼接后的结果通过文件流写入到auto.bat文件中。每个人的浏览器安装地址不尽相同,根据实际情况酌情修改即可。
start 浏览器地址 打开链接地址
PS:通过该方法可以对某些页面的流量统计进行简单的提升