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

多多關注~~,互相學習

千里之行,始於足下

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