第一步:分析要爬的网站:包括是否需要登陆、点击下一页的网址变化、下拉刷新的网址变化等等
第二步:根据第一步的分析,想好爬这个网站的思路
第三步:爬好所需的内容 保存
爬虫过程中用到的一些包:
(1)const request = require(\'superagent\'); // 处理get post put delete head 请求 轻量接http请求库,模仿浏览器登陆
(2)const cheerio = require(\'cheerio\'); // 加载html
(3)const fs = require(\'fs\'); // 加载文件系统模块 将数据存到一个文件中的时候会用到
fs.writeFile(\'saveFiles/zybl.txt\', content, (error1) => { // 将文件存起来 文件路径 要存的内容 错误
if (error1) throw error1;
// console.log(\' text save \');
});
this.files = fs.mkdir(\'saveFiles/simuwang/xlsx/第\' + this.page + \'页/\', (error) => {
if (error) throw error;
}); //创建新的文件夹
//向新的文件夹里面创建新的文件
const writeStream = fs.createWriteStream(\'saveFiles/simuwang/xlsx/\' + \'第\' + this.page + \'页/\' + xlsxTitle + \'.xlsx\', [\'a\']);
//向新的文件里面写入内容
for (let i = 0; i < value1.length; i += 1) {
writeStream.write(xlsxTitle + \'\t\' + this.getLocalTime(value1[i][0] / 1000)
+ \'\t\' + value1[i][1] + \'\t\' + this.getLocalTime(value2[i][0] / 1000)
+ \'\t\' + value2[i][1] + \'\t\' + this.getLocalTime(value3[i][0] / 1000)
+ \'\t\' + value3[i][1] + \'\t\');
}
//写入完内容之后及时关闭流,如果不关闭,当爬取很多的文件的时候会出现错误,文件里面写不进去内容
writeStream.end();
(4)const fs = require(\'graceful-fs\'); // 将文件存为xlse
const writeStream = fs.createWriteStream(\'saveFiles/trader.xlsx\'); //新建xlsx文件
writeStream.write(title);//像slsx里面写入内容
(5)const Promise = require(\'bluebird\'); //异步处理
(6)const Nightmare = require(\'nightmare\');//一个高层次的浏览器自动化图书馆 先要安装phantomjs 然后在装nightmare
(7)const co = require(\'co\');
爬虫的相关思路:
(1)获取首页面的所需内容
(2)在首页面的所有内容里面获取所需内容的链接
(3)将(2)里面的链接存到一个list里面去
(3)新写一个function,采用.pop()方法,用来取通过链接得到的新的内容
(4)判断list.length是否大于0,
(5)如果不是,开始爬子页面 并且调用该方法
(6)如果list的长度为0,就说明这一页爬完了,开始下一页,则将url改变
(7)重复(2)(3)(4)(5)(6)直至所有页面爬完