node.js做的一个简单爬虫,适合菜鸟级新手,针对无防爬措施的网站
来源:互联网 发布:java工程师招聘信息 编辑:程序博客网 时间:2024/05/16 00:24
一个爬虫的简单教程 用到的依赖 nodejs的request模块,获取目标页面的html代码; 使用cheerio模块对html代码做处理;用正则的话也不会拦你; 使用exprerss来起一个服务;
话不多说,先上源码
https://github.com/lyc-123/reptile
具体实现
- 安装依赖模块 $ 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, 里面有一个字符可以控制是否原数据保存
- node.js做的一个简单爬虫,适合菜鸟级新手,针对无防爬措施的网站
- 使用node.js做一个简单的服务器
- 一个不错的网站(适合新手学linux的)
- node.js搭建一个简单的电影网站
- 适合新手的Python爬虫小程序
- 做一个简单的python爬虫
- 如何做一个针对百度搜索引擎友好的网站
- 一些适合新手的网站与博客
- Node.JS 简单爬虫
- node.js实现简单的网络爬虫程序
- 针对Bug的管理措施
- 嵌入式linux的入门建议 ,针对新手菜鸟的
- 新手站长做网站优化的几个简单常用方法
- Node.js 一个简单的聊天室
- Node.js 一个简单的Web服务器
- 搭建一个简单的node.js服务器
- 一个简单的node.js实现界面
- Node.js的简易爬虫
- Java数据结构与算法之Array数组
- 王者荣耀——bat批处理文件,自动刷金币版(脱胎于30行Python代码刷金币版),Windows双击即可运行!
- 小记---idea springboot 报错没有get或者set方法
- POJ 3624 Charm Bracelet (01背包 O(v)空间复杂度)
- addEventListener只执行一次即销毁(已兼容)
- node.js做的一个简单爬虫,适合菜鸟级新手,针对无防爬措施的网站
- node.js模块引擎
- c++入门练习--菜单
- Python实现屏幕滑动
- vue 安装 sass,scss,less
- Java中的日期操作
- android自定义出生日期输入框
- 安徽省毫州市谷歌卫星地图下载(百度网盘离线包下载)
- 名称