gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

node爬取數據實例:聊聊怎么抓取小說章節

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

node爬取數據實例:聊聊怎么抓取小說章節

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

這里準備使用nodejs對小說網站進行爬蟲爬取,嘗試爬下一本小說,數據就不存放數據庫了,先使用txt作為文本存儲

node中對于網站的請求,本身就存在httphttps庫,內部含有request請求方法。

實例:

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

但是也就到此為止了,只是存取了一個html的文本數據,并不能夠對內部元素進行提取之類的工作(也可以正則拿,但是太過復雜)。

我將訪問到的數據通過fs.writeFile方法存儲起來了,這只是整個網頁的html

node爬取數據實例:聊聊怎么抓取小說章節

但是我想要的還有各個章節中的內容,這樣一來就需要獲取章節的超鏈接,組成超鏈接鏈表進去爬取

node爬取數據實例:聊聊怎么抓取小說章節

cheerio庫

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

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

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

在文檔中,可以使用示例進行調試

node爬取數據實例:聊聊怎么抓取小說章節


使用cheerio解析HTML

cheerio解析html時,獲取dom節點的方式與jquery相似。

根據之前獲取到的書籍首頁的html,查找自己想要的dom節點數據

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爬取數據實例:聊聊怎么抓取小說章節

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

node爬取數據實例:聊聊怎么抓取小說章節


現在章節數和章節的鏈接都有了,那么就可以獲取章節的內容了。

因為批量爬取最后需要IP代理,這里還沒準備,暫時先寫獲取某一章節小說的內容方法

爬取某一章節的內容其實也比較簡單:

// 爬取某一章節的內容方法 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爬取數據實例:聊聊怎么抓取小說章節


這樣,就可以根據上面的方法,來創造一個調用接口,傳入不同的章節參數,獲取當前章節的數據

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

效果:

node爬取數據實例:聊聊怎么抓取小說章節

現在,一個簡單的查找章節接口就做好了,并且也可以做一些參數超出判斷。

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

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
亚洲va综合va国产va中文| 黄色大片中文字幕| 99精品视频在线看| 美女黄色免费看| 欧美成年人视频在线观看| www.涩涩涩| 精品久久久久久无码国产| 丝袜老师办公室里做好紧好爽| 91aaa精品| 国产日韩欧美大片| 中国 免费 av| 色偷偷中文字幕| www.偷拍.com| 五月天av影院| av女优在线播放| 日韩网站在线免费观看| 妞干网在线播放| 91成人在线观看喷潮教学| 日韩视频免费播放| 日韩欧美一区二| 99热手机在线| 国产精品久久久影院| 2022中文字幕| 97xxxxx| 中文字幕视频在线免费观看| 日本人视频jizz页码69| 久久精品一二三四| 日韩小视频在线播放| www.国产区| 四季av一区二区三区| 欧美三级午夜理伦三级老人| 日韩久久久久久久久久久久| 国产a视频免费观看| 黄频视频在线观看| 色欲av无码一区二区人妻| xxww在线观看| 国产黄色片免费在线观看| 一区二区三区韩国| 野外做受又硬又粗又大视频√| 人妻内射一区二区在线视频 | 亚洲一级免费在线观看| 成人一区二区av| 91色国产在线| 国产黄色片免费在线观看| 日韩av片免费观看| 99视频精品免费| 激情五月婷婷六月| 成人高清在线观看视频| 男女男精品视频站| aa在线观看视频| 中文字幕色呦呦| 久久久久久久久久一区二区| 亚洲欧洲日产国码无码久久99| 污版视频在线观看| www国产黄色| 黄色一级视频在线播放| 欧美精品色视频| 国产精品亚洲天堂| 97超碰人人爽| 中文字幕22页| 国产一级片自拍| 99re6在线观看| 婷婷激情四射五月天| 一区二区三区国产免费| 日本wwww视频| caopor在线视频| 久久久久免费精品| 久久国产亚洲精品无码| 欧美视频在线免费播放| 性一交一乱一伧国产女士spa| 永久免费网站视频在线观看| 僵尸世界大战2 在线播放| 天天综合中文字幕| 污网站在线免费| www.色欧美| 不卡中文字幕在线| 日本丰满大乳奶| 一级淫片在线观看| 国产精品无码电影在线观看| 一级黄色录像免费看| 天天做天天爱天天高潮| 日韩video| 97在线国产视频| 黄色网页免费在线观看| 凹凸日日摸日日碰夜夜爽1| 黄色片久久久久| 99sesese| 一本色道久久88亚洲精品综合| 日韩精品第1页| 丁香六月激情婷婷| 黄色国产小视频| 一级黄色录像免费看| 免费看国产一级片| 国产一二三区av| 成年人深夜视频| 极品美女扒开粉嫩小泬| 日本免费观看网站| 91大学生片黄在线观看| 国产人妻777人伦精品hd| 国产av无码专区亚洲精品| 久久久久久久久久一区二区| 特大黑人娇小亚洲女mp4| 亚洲熟妇av日韩熟妇在线| 鲁一鲁一鲁一鲁一av| 2019日韩中文字幕mv| www欧美激情| 乱人伦xxxx国语对白| 国产女人18毛片| 日韩av手机版| 成人免费性视频| 亚洲欧美视频二区| 成年网站在线免费观看| 波多野结衣三级在线| av观看免费在线| 红桃一区二区三区| 欧美三级午夜理伦三级富婆| 日韩小视频在线播放| 久久久精品视频国产| 久久综合色视频| 国产高潮免费视频| 日本一本中文字幕| 天天久久综合网| 中文字幕亚洲乱码| 亚洲精品乱码久久久久久自慰| 波多野结衣网页| 视频二区在线播放| 性欧美极品xxxx欧美一区二区| 男女超爽视频免费播放| 国产精品88久久久久久妇女 | 日韩中文字幕三区| 国产黄色激情视频| 免费观看亚洲视频| 婷婷激情综合五月天| 污网站免费在线| 一区二区三区视频在线观看免费| 久久久999视频| 中国丰满人妻videoshd | 欧美深夜福利视频| 欧美二区在线视频| 91成人在线观看喷潮教学| 国产精品12345| 人妻夜夜添夜夜无码av| 国产手机免费视频| 日本免费成人网| 久久手机在线视频| 丁香花在线影院观看在线播放| 欧妇女乱妇女乱视频| 妞干网在线观看视频| 777777av| 成人性生交免费看| 99久re热视频精品98| 成人免费视频91| www.日日操| 色乱码一区二区三区在线| 老司机av福利| 91丨porny丨探花| 激情内射人妻1区2区3区| 亚洲精品久久久中文字幕| 国产av第一区| 久久久精品在线视频| 日本中文字幕二区| 17c丨国产丨精品视频| 久久国产午夜精品理论片最新版本| 国产毛片视频网站| 性欧美极品xxxx欧美一区二区| 亚洲综合在线一区二区| 欧美人成在线观看| 污污网站在线观看视频| 蜜桃网站在线观看| 国产九九在线观看| 欧美无砖专区免费| 少妇一级淫免费放| 丰满的少妇愉情hd高清果冻传媒| 色多多视频在线播放| 日本a在线天堂| 手机看片福利日韩| 中文字幕无码精品亚洲资源网久久| 美女一区二区三区视频| 日本中文字幕一级片| 色一情一区二区三区| 欧美精品99久久| 日本一道在线观看| 在线看的黄色网址| av黄色在线网站| 成人免费观看在线| 韩国黄色一级大片| 亚洲久久中文字幕| 91av资源网| 国产中文字幕乱人伦在线观看| 日韩欧美国产片| 噼里啪啦国语在线观看免费版高清版 | 国产成人无码一二三区视频| 国内精品视频一区二区三区| 中文字幕黄色大片| 在线观看高清免费视频| 日本黄色三级大片| 欧美 激情 在线| 日本不卡在线观看视频| 成人精品视频在线播放| 日本xxxxxxxxxx75|