平時喜歡看小說,但是有的站點小說比較少,就想着把各大站的小說集中在一起。所以就想着爬數據,第一次,萬事開頭難~
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
多多關注~~,互相學習
千里之行,始於足下,