nodejs + request + cheerio 抓取页面指定的信息
来源:互联网 发布:手机cpu监控软件 编辑:程序博客网 时间:2024/05/22 02:27
项目是建立在在express 框架下 express可参考 http://www.expressjs.com.cn/starter/hello-world.html
1.引入cheerio模块 npm install --save cheerio
2. 引入iconv-lite模块 中文转码用 npm install --save iconv-lite
var express = require('express');
const cheerio = require('cheerio');
const request = require('request');
const iconv = require('iconv-lite');
var router = express.Router();
//采集地址:https://detail.tmall.com/item.htm?id=525432847421 获取 商品和规格信息
router.post('/addUrl', function(req, res, next) {
//res.send('respond with a resource');var param = req.body;// req.query || req.params get提交获取参数 ; req.body post提交的参数
var url = param.goods_url;
var req = request({url:url,encoding:null}, function(error, response, body) {
if (!error && response.statusCode == 200) {
var buf = iconv.decode(body, 'gb2312');//获取内容进行转码
//console.log(response) // 打印页面
$ = cheerio.load(buf);
// $('.tm-clear .tb-property').remove();
// $('.tm-clear .tb-gallery').remove(); //删除元素
var script = $('#J_FrmBid').next().next().next(); //同级下一个元素
// var script_arr = $('.tm-clear>script');//获取子标签<script>
// console.log(script);
var _html = script.html();
var reg=/\{\"api\"[\s\S]*\"valTimeLeft\"\:[0-9]*\}/g; //正则匹配{"api": 下面的内容到 "valTimeLeft":XXX} 结束;
var html = _html.match(reg);
var json_obj = JSON.parse(html); //字符串转换为json格式
console.log(json_obj.itemDO); //打印商品信息
res.json({
code:'1',
msg: '操作成功'
});
}
});
//res.render('goods/result',data);
})
module.exports = router;
- nodejs + request + cheerio 抓取页面指定的信息
- request cheerio 抓取页面并获取所需数据
- 抓取页面模块 cheerio
- nodejs+request+cheerio实现网络爬虫
- NodeJS + PhantomJS 抓取页面信息以及截图
- NodeJS + PhantomJS 抓取页面信息以及截图
- NodeJS + PhantomJS 抓取页面信息以及截图
- cheerio为nodejs定制的JQuery。
- 抓取静态页面的信息
- nodejs+cheerio 爬虫入门
- C# POST 方式抓取页面的信息
- Nodejs抓取非utf8字符编码的页面
- 页面信息抓取
- python 页面信息抓取
- nodejs 之 通读cheerio API
- nodejs的request用法
- NodeJs抓取页面html()方法乱码
- python抓取简单页面信息
- 第16周-项目2-用文件保存学生名单
- 邻接表存储图的深度优先、广度优先遍历非递归算法
- tomcat-redis-session管理 使用说明
- java fastjson如何自定义转换含枚举类型对象(编程技巧)
- iOS 编译包含 bitcode 的 fdk-aac 静态库(包含 arm64)
- nodejs + request + cheerio 抓取页面指定的信息
- 集合大家族--Java
- vim技巧
- 调用 android 自身裁剪功能
- jquery获取子节点和父节点的示例代码
- Oracle如何显示出小数点前后的0
- Java 垃圾回收机制
- Linux 学习之旅第一天之vi编辑器和运行级别
- Python dict字典 基础知识篇