node简单爬虫----爬取书籍

平时喜欢看小说,但是有的站点小说比较少,就想着把各大站的小说集中在一起。所以就想着爬数据,第一次,万事开头难~

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

多多关注~~,互相学习

千里之行,始于足下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章