平时喜欢看小说,但是有的站点小说比较少,就想着把各大站的小说集中在一起。所以就想着爬数据,第一次,万事开头难~
1. 爬虫地址
就爬捏了~笔趣阁全部小说
2. 新建server.js文件
3.下载所需依赖
添加request模块,用于请求所用
npm install request
添加cheerio模块,用于操作dom
npm install cheerio
添加iconv-lite模块,用于中文乱码,转码所用
npm install iconv-lite
4.关键代码
const request=require('request')
const cheerio = require('cheerio');
let url = 'http://www.xbiquge.la/xiaoshuodaquan/';
request({
url: url,
method: 'get',
gzip:true
}, (err, res, body) => {
let html=body.toString()
let $=cheerio.load(html)
$('.novellist ul li a').each(function(i){
console.log('书名',$(this).text()+",地址"+$(this).attr('href'));
})
}
);
5.运行当前文件
node server.js
6.运行结果
已经解析出书籍以及其地址啦。
6.注意点
一开始解析出来的html是乱码的。主要注意两点即可
1.编码为utf-8的,且浏览器正常,但输出依然乱码
这个时候要注意其Response Headers
是不是Content-Encoding: gzip
而这里的爬虫就是属于这种情况,所以请求加上gzip:true
即可,那么iconv-lite
暂时是用不上了。
2.编码为非utf-8的且非gbk和gbk123的,那么就需要iconv-lite
实际到底是不是请以charset的值为准,然后使用decode转码为gbk
多多关注~~,互相学习
千里之行,始于足下,