返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用node抓取小说章节
  • 304
分享到

怎么用node抓取小说章节

2024-04-02 19:04:59 304人浏览 安东尼
摘要

本文小编为大家详细介绍“怎么用node抓取小说章节”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用node抓取小说章节”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。准备用e

本文小编为大家详细介绍“怎么用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库

在文档中,可以使用示例进行调试

怎么用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抓取小说章节”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网node.js频道。

--结束END--

本文标题: 怎么用node抓取小说章节

本文链接: https://www.lsjlt.com/news/97647.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用node抓取小说章节
    本文小编为大家详细介绍“怎么用node抓取小说章节”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用node抓取小说章节”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。准备用e...
    99+
    2024-04-02
  • 使用PyCharm怎么爬取小说
    使用PyCharm怎么爬取小说?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。爬取小说的思路: 1.获取小说地址本文以搜书网一小说为例《嘘,梁上有王妃!》目录网址:...
    99+
    2023-06-14
  • 怎么用python爬取小说内容
    使用Python爬取小说内容,可以使用requests库发送HTTP请求获取小说网站的HTML内容,然后使用BeautifulSou...
    99+
    2023-09-12
    python
  • 怎么用node抓取宝可梦图鉴并生成Excel文件
    本文小编为大家详细介绍“怎么用node抓取宝可梦图鉴并生成Excel文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用node抓取宝可梦图鉴并生成Excel文件”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2024-04-02
  • python中怎么使用XPath爬取小说
    这篇文章将为大家详细讲解有关python中怎么使用XPath爬取小说,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决...
    99+
    2023-06-14
  • python怎么爬取小说内容
    在Python中,可以使用`requests`库发送HTTP请求,并使用`BeautifulSoup`库解析HTML页面,从而爬取小...
    99+
    2023-10-10
    python
  • Web抓取框架JSoup怎么用
    这篇文章主要介绍了Web抓取框架JSoup怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。仅供参考学习。Web抓取框架就像许多现代科技一样,从网站提取信息这一功能也有多个...
    99+
    2023-06-02
  • 怎么用php抓取网页数据
    使用PHP抓取网页数据可以使用cURL库或者file_get_contents函数。以下是两种方法的示例:1. 使用cURL库抓取网...
    99+
    2023-09-26
    php
  • 怎么用python抓取游戏数据
    要使用Python抓取游戏数据,你可以按照以下步骤进行操作: 导入所需的库,例如requests和BeautifulSoup: ...
    99+
    2023-10-26
    python
  • 使用nodejs怎么抓取页面的始末
    使用nodejs怎么抓取页面的始末,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。事由以及动机2015年9月份全国研究生数学建模...
    99+
    2024-04-02
  • 怎么用Python爬虫抓取智联招聘
    今天就跟大家聊聊有关怎么用Python爬虫抓取智联招聘,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪工...
    99+
    2023-06-17
  • 怎么用python爬虫抓取网页文本
    使用Python爬虫抓取网页文本可以使用第三方库requests和beautifulsoup。首先,安装requests和beaut...
    99+
    2023-10-18
    python
  • 怎么用python抓取百度贴吧内容
    本篇内容介绍了“怎么用python抓取百度贴吧内容”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!# -*- coding: utf-8imp...
    99+
    2023-06-03
  • 怎么用Python抓取国家医疗费用数据
    这篇文章主要介绍“怎么用Python抓取国家医疗费用数据”,在日常操作中,相信很多人在怎么用Python抓取国家医疗费用数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python抓取国家医疗费用数据...
    99+
    2023-06-16
  • 怎么使用NodeJs爬虫抓取古代典籍
    这篇文章主要讲解了“怎么使用NodeJs爬虫抓取古代典籍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用NodeJs爬虫抓取古代典籍”吧!项目实现方案...
    99+
    2024-04-02
  • 怎么用Perl抓取网页和提交表格
    这篇文章主要介绍了怎么用Perl抓取网页和提交表格,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用Perl抓取网页和提交表格这里简单介绍一下用Perl来实现抓好取网页的源代码...
    99+
    2023-06-17
  • 怎么使用Python定时抓取微博评论
    这篇文章主要讲解了“怎么使用Python定时抓取微博评论”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Python定时抓取微博评论”吧!【Part1—&m...
    99+
    2023-06-15
  • mac怎么使用charles抓取iphone的手机包
    使用 Charles 抓取 iPhone 的手机报文需要进行以下步骤: 配置 Charles 代理:在 Charles 中选择“Proxy”菜单,然后选择“Proxy Settings”,在“Pr...
    99+
    2023-09-03
    iphone 智能手机 ios
  • 大数据采集和抽取怎么做?这篇文章终于说明白了!
    本文来源于公众号【胖滚猪学编程】,转载请注明出处! 关于数据中台的概念和架构,我们在大白话 六问数据中台和数据中台全景架构及模块解析!一文入门中台架构师!两篇文章中都说明白了。从这一篇文章开始分享中台落地实战。 其实无论是数据...
    99+
    2021-04-23
    大数据采集和抽取怎么做?这篇文章终于说明白了!
  • 怎么用PHP实现抓取天气预报的功能
    这篇文章主要介绍“怎么用PHP实现抓取天气预报的功能”,在日常操作中,相信很多人在怎么用PHP实现抓取天气预报的功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用PHP实现抓取天气预报的功能”的疑惑有所...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作