cheerio爬取网页数据,存储到MySQL数据库
2017-12-06 15:09
309 查看
最近在做物流项目成本分析,需要爬取柴油价格数据,使用到了cheerio,cheerio实现了jQuery核心的一个子集。以下为爬取代码。
//getHtml.js,获取HTML页面数据 var http = require("http"); function gethtml(url,callback){ http.get(url,function(res){ var data = ""; res.on('data',function(chunk){ data += chunk; }); res.on('end',function(){ callback(data); }); }).on("error",function(){ callback(null); }) } exports.gethtml = gethtml;
//getData.js,使用cheerio获取数据并存储到mysql数据库 const cheerio = require('cheerio'); const server = require('./getHtml'); var url = 'http://ny.gold600.com/'; server.gethtml(url,function(data){ if(data){ var $ = cheerio.load(data); var data = []; var list = $('.oilTable tbody tr:nth-child(odd)'); list.each(function(index,element){ let city = $(element).find('a').text().replace(/\s/g,''); // 获取标题 let price = $($(element).find('td')[4]).text().replace(/\s/g,''); // 获取价格 let time = $($(element).find('td')[5]).text().replace(/\s/g,''); // 获取价格 data.push({city,price,time}) // console.log(price) // console.log(element.children('td')[0].innerTEXT); }) var str = ''; data.forEach(function(item,index){ if(index == 0){ str += 'VALUES("'+item.city+'",'+item.price+',"'+item.time+'")'; }else{ str += ',("'+item.city+'",'+item.price+',"'+item.time+'")'; } }) console.log(str) var connection = mysql.createConnection({ host:'127.0.0.1', user:'root', password:'******', database:'price' }); console.log(str) connection.connect(); connection.query('DELETE FROM priceList'); connection.query('ALTER TABLE priceList AUTO_INCREMENT=1'); connection.query('INSERT priceList(city,price,time) '+str,function(error,results,fields){ if(error) throw error; console.log('The solution is:',results); let a = results[1]; console.log(a) }) connection.end(); console.log(value); // Success! }else{ console.log("error"); } })
需要注意的是使用$(selector).find(selector)查找到的元素需要使用再次使用$()进行包裹才能使用cheerio提供方法,如:text()。
相关文章推荐
- 网页数据存储mysql数据库过程问题及解决
- java web从网页表单输入数据存储到MySQL数据库
- 读取股票数据存储到本地MySQL数据库(三)
- 基于树型结构数据的关系数据库存储与网页显示的研究 推荐
- Mysql数据库修改数据库数据存储路径(安装的mysql为msi版本)
- 转载:通过Java API编程实现Nutch Crawler抓取数据存储到MySQL数据库
- CentOS7 初次安装记录(四)修改mysql数据库数据存储位置
- mysql数据库存储中文数据的解决办法
- Java网页数据采集器[中篇-数据存储]
- MySQL数据库学习四 存储引擎和数据类型
- Python爬虫数据存储MySQL【2】模拟登录网页
- 使用node.js cheerio抓取网页数据
- 将数据从redis数据库中存储到本地的mysql数据库中
- 读书笔记:MySQL数据库 数据类型优化二 用整形Int 存储 IP地址
- mysql为utf8为什么网页返回数据及写入mysql数据库均为乱码?
- java的JTable组件显示mysql数据库表中的数据以及将JTable表格中的数据存储到数据库中
- 二、MySQL数据库中存储引擎和数据类型
- 将网页的解析数据存储为html文件
- 解决存储数据到mysql数据库中文乱码的问题
- MySQL数据库存储价格金额使用的数据类型