久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)

node怎么爬取數(shù)據(jù)?下面本篇文章給大家分享一個node爬蟲實(shí)例,聊聊利用node抓取小說章節(jié)的方法,希望對大家有所幫助!

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)

準(zhǔn)備用electron制作一個小說閱讀工具練練手,那么首先要解決的就是數(shù)據(jù)問題,也就是小說的文本。

這里準(zhǔn)備使用nodejs對小說網(wǎng)站進(jìn)行爬蟲爬取,嘗試爬下一本小說,數(shù)據(jù)就不存放數(shù)據(jù)庫了,先使用txt作為文本存儲

node中對于網(wǎng)站的請求,本身就存在httphttps庫,內(nèi)部含有request請求方法。

實(shí)例:

request = https.request(TestUrl, { encoding:'utf-8' }, (res)=>{     let chunks = ''     res.on('data', (chunk)=>{         chunks += chunk     })     res.on('end',function(){         console.log('請求結(jié)束');     }) })

但是也就到此為止了,只是存取了一個html的文本數(shù)據(jù),并不能夠?qū)?nèi)部元素進(jìn)行提取之類的工作(也可以正則拿,但是太過復(fù)雜)。

我將訪問到的數(shù)據(jù)通過fs.writeFile方法存儲起來了,這只是整個網(wǎng)頁的html

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)

但是我想要的還有各個章節(jié)中的內(nèi)容,這樣一來就需要獲取章節(jié)的超鏈接,組成超鏈接鏈表進(jìn)去爬取

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)

cheerio庫

所以,這里就要介紹一個js的庫了,cheerio

官方文檔:https://cheerio.js.org/

中文文檔:https://github.com/cheeriojs/cheerio/wiki/Chinese-README

在文檔中,可以使用示例進(jìn)行調(diào)試

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)


使用cheerio解析HTML

cheerio解析html時,獲取dom節(jié)點(diǎn)的方式與jquery相似。

根據(jù)之前獲取到的書籍首頁的html,查找自己想要的dom節(jié)點(diǎn)數(shù)據(jù)

const fs = require('fs') const cheerio = require('cheerio');  // 引入讀取方法 const { getFile, writeFun } = require('./requestNovel')  let hasIndexPromise = getFile('./hasGetfile/index.html');  let bookArray = [];  hasIndexPromise.then((res)=>{     let htmlstr = res;     let $ = cheerio.load(htmlstr);      $(".listmain dl dd a").map((index, item)=>{         let name = $(item).text(), href = 'https://www.shuquge.com/txt/147032/' + $(item).attr('href')         if (index > 11){             bookArray.push({ name, href })         }              })     // console.log(bookArray)     writeFun('./hasGetfile/hrefList.txt', JSON.stringify(bookArray), 'w') })

打印一下信息

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)

可以同時將這些信息也存儲起來

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)


現(xiàn)在章節(jié)數(shù)和章節(jié)的鏈接都有了,那么就可以獲取章節(jié)的內(nèi)容了。

因?yàn)榕颗廊∽詈笮枰狪P代理,這里還沒準(zhǔn)備,暫時先寫獲取某一章節(jié)小說的內(nèi)容方法

爬取某一章節(jié)的內(nèi)容其實(shí)也比較簡單:

// 爬取某一章節(jié)的內(nèi)容方法 function getOneChapter(n) {     return new Promise((resolve, reject)=>{         if (n >= bookArray.length) {             reject('未能找到')         }         let name = bookArray[n].name;         request = https.request(bookArray[n].href, { encoding:'gbk' }, (res)=>{             let html = ''             res.on('data', chunk=>{                 html += chunk;             })             res.on('end', ()=>{                            let $ = cheerio.load(html);                 let content = $("#content").text();                 if (content) {                     // 寫成txt                     writeFun(`./hasGetfile/${name}.txt`, content, 'w')                     resolve(content);                 } else {                     reject('未能找到')                 }             })         })         request.end();     }) }  getOneChapter(10)

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)


這樣,就可以根據(jù)上面的方法,來創(chuàng)造一個調(diào)用接口,傳入不同的章節(jié)參數(shù),獲取當(dāng)前章節(jié)的數(shù)據(jù)

const express = require('express');  const IO = express(); const { getAllChapter, getOneChapter } = require('./readIndex') // 獲取章節(jié)超鏈接鏈表 getAllChapter();  IO.use('/book',function(req, res) {     // 參數(shù)     let query = req.query;     if (query.n) {         // 獲取某一章節(jié)數(shù)據(jù)         let promise = getOneChapter(parseInt(query.n - 1));         promise.then((d)=>{             res.json({ d: d })         }, (d)=>{             res.json({ d: d })         })     } else {         res.json({ d: 404 })     }      })  //服務(wù)器本地主機(jī)的數(shù)字 IO.listen('7001',function(){     console.log("啟動了。。。"); })

效果:

node爬取數(shù)據(jù)實(shí)例:聊聊怎么抓取小說章節(jié)

現(xiàn)在,一個簡單的查找章節(jié)接口就做好了,并且也可以做一些參數(shù)超出判斷。

對于不同的數(shù)據(jù)接口,爬蟲處理方式也不一樣,不過在本次爬取的鏈接中,內(nèi)容的顯示并不是由前端動態(tài)渲染出來的,所以可以直接爬取靜態(tài)的html即可。如果遇到數(shù)據(jù)是通過Ajax之類的方式獲取到的json串,那就要通過網(wǎng)絡(luò)接口去請求數(shù)據(jù)了。

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
美美哒免费高清在线观看视频一区二区| 国产精品午夜av| 日精品一区二区三区| 免费在线成人| 蜜臀精品一区二区三区在线观看 | 欧美在线资源| 老牛影视精品| 国产精品网址| 免费视频最近日韩| 六月婷婷综合| 激情不卡一区二区三区视频在线| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩欧美精品一区| 国产中文欧美日韩在线| 在线精品观看| 制服诱惑一区二区| 国模 一区 二区 三区| 国产高清亚洲| 欧美国产亚洲精品| 国产精品字幕| 亚洲精品进入| 岛国精品一区| 自拍日韩欧美| 国产精品超碰| 香蕉视频成人在线观看| 国产精品午夜av| 日韩视频二区| 国产一区一一区高清不卡| 黄色免费成人| 青草国产精品| 久久久国产亚洲精品| 日韩av成人高清| 欧美~级网站不卡| 国产欧美日韩精品一区二区三区| 91精品xxx在线观看| 欧美日韩亚洲一区三区| 激情六月综合| 久久中文在线| 午夜精品福利影院| 欧美福利专区| 黑人精品一区| 欧美成人精品午夜一区二区| 亚洲欧洲另类| 天堂av在线| 欧美日一区二区在线观看| 国产一区亚洲| 欧美日韩精品免费观看视完整 | 久久免费影院| 欧美日韩18| 蜜臀av一区二区在线免费观看| 成人一区而且| 久久久久久久欧美精品| 久久不见久久见中文字幕免费| 综合激情视频| 国产一区二区三区自拍| 国产伦精品一区二区三区千人斩| 亚洲男女自偷自拍| 欧美特黄a级高清免费大片a级| 91亚洲国产高清| 精品亚洲a∨| 国精品产品一区| 国产精品99久久精品| 国产一区二区三区国产精品| 国产aⅴ精品一区二区四区| 麻豆高清免费国产一区| 久久av导航| 国产成人精品一区二区三区在线| 久久亚洲黄色| 天堂8中文在线最新版在线| 国产日韩亚洲欧美精品| 欧美韩一区二区| 亚洲欧洲美洲av| 久久亚洲国产| 伊人久久亚洲| 久久99久久久精品欧美| av高清不卡| 亚洲经典在线| 国产精品欧美三级在线观看| 国产精品va| 欧美日中文字幕| 蜜桃久久av一区| 国产欧美午夜| 久久一级电影| 日韩av午夜在线观看| 国产精品久久久久久久久免费高清| 国产精品a级| 影视先锋久久| 国产欧美成人| 亚洲国产综合在线看不卡| 日韩一区二区三区四区五区| 久久亚洲资源中文字| av成人国产| 国产精品多人| 亚洲欧美日韩国产| 国产成人精品一区二区三区免费| 米奇777超碰欧美日韩亚洲| 国产免费av国片精品草莓男男| 成人精品天堂一区二区三区| 日韩在线观看中文字幕| 欧美经典一区| 尤物在线精品| 国产在线一区不卡| 综合欧美亚洲| 99久久视频| 久久精品国产网站| 亚洲精品黄色| 午夜在线观看免费一区| 国产不卡av一区二区| 7777精品| 日韩动漫一区| 五月天久久久| av最新在线| 麻豆国产精品| 国产日韩1区| 亚洲精华国产欧美| 精品视频在线观看网站| 亚洲ww精品| 日韩精品一级中文字幕精品视频免费观看 | 国产精品久久| 日韩av一区二区三区| 视频一区国产视频| 欧美日韩国产欧| 日韩精品欧美激情一区二区| 精品一区二区三区免费看| 国产乱码精品一区二区三区四区 | 久久中文字幕二区| 超碰99在线| 性欧美videohd高精| 亚洲综合在线电影| 国产成人精品一区二区免费看京 | 久久性天堂网| 午夜一级久久| 亚洲一区二区成人| 久热re这里精品视频在线6| 伊人影院久久| 视频一区欧美日韩| 日韩不卡免费视频| 亚洲欧美网站在线观看| 四虎在线精品| 国产精品三级| 亚洲精品在线影院| 午夜在线一区二区| 日韩av影院| 久久青青视频| 久久亚洲国产精品一区二区| 四虎国产精品免费久久| 麻豆视频久久| 99综合视频| 国产精品一区二区三区四区在线观看 | 亚洲综合三区| 亚洲狼人精品一区二区三区| 综合精品一区| 国产精品.xx视频.xxtv| 日韩av专区| 天堂成人免费av电影一区| 日本亚洲视频在线| 国产乱子精品一区二区在线观看 | 亚洲精品在线影院| 99日韩精品| 国产日韩欧美一区| 日韩综合精品| 日本色综合中文字幕| 91精品韩国| 国产亚洲一卡2卡3卡4卡新区| 日韩精品专区| 欧美日韩调教| 视频一区国产视频| 亚洲天堂av影院| 91精品福利观看| 亚洲国产一区二区三区在线播放| 久久国产三级| 激情综合自拍| 国产精品17p| 免费精品视频最新在线| 久久婷婷一区| 免费精品一区| 亚洲精品成人一区| 亚洲女同中文字幕| 日韩av在线播放网址| 青青国产91久久久久久| 国产精品人人爽人人做我的可爱| 国产伦久视频在线观看| 日韩和欧美一区二区| 亚洲中字黄色| 欧美一区二区三区激情视频 | 国产视频一区免费看| 久久九九99| 免费高潮视频95在线观看网站| 国产精品v日韩精品v欧美精品网站 | 蜜臀国产一区| 精品国产乱码久久久| 国产日韩欧美一区在线| 日韩三级一区| 国产日韩高清一区二区三区在线 | 青青草国产精品亚洲专区无| 午夜在线播放视频欧美| 好看的av在线不卡观看| 日韩电影二区| 99视频精品全国免费| 欧美日韩色图|