node.js做的一个简单爬虫,适合菜鸟级新手,针对无防爬措施的网站

本文介绍了一个基于Node.js的简单爬虫项目实现过程,利用request模块获取网页内容,通过cheerio模块解析HTML并提取所需数据,最后使用express模块部署服务。

一个爬虫的简单教程 用到的依赖 nodejs的request模块,获取目标页面的html代码; 使用cheerio模块对html代码做处理;用正则的话也不会拦你; 使用exprerss来起一个服务;

话不多说,先上源码

https://github.com/lyc-123/reptile

具体实现

  1. 安装依赖模块 $ npm init 初始化一个项目

```

npm install express request cheerio --save

```

安装所需的模块 express用于搭建node服务 request类似于ajax的方式获取一个url里的html代码 cheerio类似于jQuery那样对所获取的html代码进行处理

//根目录新建一个app.js

var express = require('express');

var app = express(); var fs = require('fs'); 

var request = require('request'); 

var cheerio = require('cheerio');

const articalSavePath = "./data"; //文章存放路径

//创建所需文件夹 
if (!fs.existsSync(articalSavePath)) { fs.mkdirSync(articalSavePath); }

//这里是简单的爬取几个title 
app.get('/', function(req, res) {
request('http://bohaishibei.com/post/category/main/', function(error, response, body) {
    if (!error && response.statusCode == 200) {
        $ = cheerio.load(body);
        var arr = [];
        for (var i = 0; i < $('.excerpt').length; i++) {
            arr.push($('.excerpt').find('a').eq(i).text())
        }
        res.json({
            cat: arr
        });

        console.log('a')
        let news_title = '1'
        //这里是把爬取到的数据保存到文件夹里面
        savedContent($, news_title)   
    }
})

})

```

//保存到本地的代码

 let savedContent = function($, news_title) { let x = $(this).find('a').text(); console.log(x) if (x) { x = ' ' + x + '\n'; fs.appendFile('./data/' + news_title + '.txt', x, '', function(err) { if (err) { console.log(err); } }); } }; 

//起服务 

var server = app.listen(3000, function() { console.log('listening at 3000'); });

```

//源码使用方法 cnpm i 安装依赖 node index.js运行 访问 localhost:3000即可看到数据

常见问题 要是自己照着敲下来的话,会发现数据都是以字符集编码形式保存起来的, 这里的话我们需要去node中找到cheerio,在引用的js中有一个control.js, 里面有一个字符可以控制是否原数据保存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值