nodejs爬虫

1 篇文章 0 订阅

本文主要通过 superagent cheerio 实现nodejs爬虫。

使用superagent获取网页信息,再通过cheerio解析网页内容。

以获取笔趣阁小说为例:

首先安装安装superagent和cheerio

npm i superagent --save
npm i cheerio --save

 先简单地获取整页网站的内容

var cheerio = require('cheerio');
var superagent = require('superagent');

superagent.get('http://www.biquge.com.tw/10_10459/6123635.html').end(function (err,res) {
    if (err) {
        console.log(err);
        return err;
    }
    console.log(res.text)
});

res.text 就是获取的网页内容。这时候查看输出内容会发现中文内容是乱码的,superagent 只支持utf-8编码,我们需要将编码格式设置为 gbk,我们可以选择 superagent-charset 这个库实现这个功能。

npm i superagent-charset --save

 通过 superagent-charset 设置为gbk格式。

var charset = require('superagent-charset');
var superagent = require('superagent');
var cheerio = require('cheerio');

superagent = charset(superagent)

superagent.get('http://www.biquge.com.tw/10_10459/6123635.html')
    .charset('gbk')
    .end(function (err,res) {
    if (err) {
        console.log(err);
        return err;
    }
    console.log(res.text)
});

这时候的输出就是中文了。之后我们就只需要通过cheerio解析内容,cheerio的使用十分类似jQuery

var charset = require('superagent-charset');
var superagent = require('superagent');
var cheerio = require('cheerio');

superagent = charset(superagent)

superagent.get('http://www.biquge.com.tw/10_10459/6123635.html')
    .charset('gbk')
    .end(function (err,res) {
    if (err) {
        console.log(err);
        return err;
    }

    
    var $ = cheerio.load(res.text);

    var content= $('#content')['0'].children;
    $element = $(content);
    console.log($element.text());
});

这时候就获得这章小说的内容了。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它可以让你使用JavaScript来开发服务器端的应用程序。而爬虫是一种自动化程序,用于从互联网上获取数据。在Node.js中,你可以使用一些库来实现爬虫功能,例如`axios`、`cheerio`和`puppeteer`等。 下面是一个使用Node.js实现取静态页面的简单示例: 1. 首先,你需要安装Node.js和npm(Node.js的包管理器)。 2. 在你的项目目录下,打开终端并运行`npm init`命令来初始化一个新的Node.js项目,并按照提示填写相关信息。 3. 安装所需的库,例如`axios`和`cheerio`,可以使用以下命令: ``` npm install axios cheerio ``` 4. 创建一个新的JavaScript文件,例如`crawler.js`,并在文件中编写以下代码: ```javascript const axios = require('axios'); const cheerio = require('cheerio'); // 定义要取的页面URL const url = 'https://example.com'; // 发起HTTP请求获取页面内容 axios.get(url) .then(response => { // 使用cheerio解析页面内容 const $ = cheerio.load(response.data); // 在页面中查找需要的数据并进行处理 const title = $('h1').text(); console.log('页面标题:', title); }) .catch(error => { console.error('请求页面失败:', error); }); ``` 5. 运行该脚本,使用以下命令: ``` node crawler.js ``` 以上示例代码使用`axios`库发送HTTP请求获取页面内容,然后使用`cheerio`库解析页面内容。你可以根据需要在代码中添加更多的逻辑来处理页面数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值