node.js 爬虫以及数据导出到excel

//server.js 1 var http = require(‘http‘),
 2     url = require("url"),
 3         superagent = require("superagent"),
 4         cheerio = require("cheerio"),
 5         async = require("async"),
 6         eventproxy = require(‘eventproxy‘),
 7         fs = require("fs"),
 8     nodeExcel = require(‘excel-export‘),
 9     querystring = require(‘querystring‘);
10
11 exports.start=function() {
12     //request 客户端的HTTP请求 //response服务器端的HTTP回应
13     function onReqoest(req,response){
14         // 设置字符编码(去掉中文会乱码,回应)
15         response.writeHead(200, {‘Content-Type‘: ‘text/html;charset=utf-8‘});
16         superagent
17             .get(‘https://list.yohobuy.com/boys-new/‘)
18             .set(‘Accept‘,‘application/json‘)
19             .end(function(err,pres){
20                 var startDate = new Date();
21                 //常规错误处理
22                 if (err) {
23                   console.log(1)
24                   return;
25                 }
26                 var html=pres.text;
27                 var chapterData;
28                 var chapter = crawlerChapter(html);//2
29                 //console.log(chapter);
30                 console.log(chapter);
31                 function crawlerChapter(html) {
32                     var $ = cheerio.load(html);
33                     var chapters = $(‘.good-info‘);
34                     var data1 = [];
35                     chapterData = {
36                             imgUrl:[],
37                             biaoti: [],
38                             price:[]
39                         };
40                     $(‘.good-detail-img‘).each(function(i, elem) {
41                           chapterData.imgUrl[i] = $(this).text();
42                     });
43                     $(‘.good-detail-text>a‘).each(function(i, elem) {
44                           chapterData.biaoti[i] = $(this).text().trim();
45                     });
46                     $(‘.good-detail-text .price .market-price‘).each(function(i, elem) {
47                           chapterData.price[i] = $(this).text().trim();
48                     });
49                 };
50                 var conf= {},temp=[];
51                 conf.cols =[
52                     {caption:‘标题‘,
53                      type:‘string‘},
54                       {caption:‘价格‘,
55                     type:‘string‘},
56                     {caption:‘图片地址‘,
57                     type:‘string‘}
58                     ];
59                 for(var i=0; i<chapterData.biaoti.length;i++) {
60                     var buffer = [chapterData.biaoti[i], chapterData.price[i]];
61                     console.log(buffer);
62                     temp.push(buffer);
63                 }
64                 conf.rows=temp;
65                   var result = nodeExcel.execute(conf);
66                 var random = Math.floor(Math.random()*10000+0);//用来保证生成不同的文件名
67                 var filePath ="fi" + random + ".xlsx";  //文件名
68                 fs.writeFile(filePath, result, ‘binary‘,function(err){
69                     if(err){
70                         console.log(err);
71                     }
72                 });
73             });
74     }
75     http.createServer(onReqoest).listen(3500);
76 }
//app.jsvar server = require("./server"); //node js创建了一个模块
server.start();

第一次写,随便找个网页,然后就好了!!!

大家有什么意见一定发表噢。。。。,我要进步呀!。

时间: 2024-09-29 10:11:00

node.js 爬虫以及数据导出到excel的相关文章

有趣的Node爬虫,数据导出成Excel

最近一直没更新了诶,因为学习Backbone好头痛,别问我为什么不继续AngularJs~因为2.0要出来了啊,妈蛋!好,言归正传,最近帮我的好基友扒数据,他说要一些股票债券的数据.我一听,那不就是要做爬虫了么...果断用Node做!(其实也有一个股票数据API,sina提供的,但是由于不适用于债券,没办法,只好自己动手丰衣足食了) 工欲善其事,必先利其器嘛,蓬勃的Node社区提供了非常多的好的工具,下面我列出将要使用的工具: request,封装了Node的原生的http模块,使API更加简洁

Node.js爬虫-爬取慕课网课程信息

第一次学习Node.js爬虫,所以这时一个简单的爬虫,Node.js的好处就是可以并发的执行 这个爬虫主要就是获取慕课网的课程信息,并把获得的信息存储到一个文件中,其中要用到cheerio库,它可以让我们方便的操作HTML,就像是用jQ一样 开始前,记得 npm install cheerio 为了能够并发的进行爬取,用到了Promise对象 //接受一个url爬取整个网页,返回一个Promise对象 function getPageAsync(url){ return new Promise(

使用原生php将数据库数据导出到excel文件中

最近在工作中遇到一个需求,需要将数据库中的数据导出到excel文件中,并下载excel文件.因为以前没做过,所以就百度了一下, 网上说的大多是使用PHPExcel类来操作excel文件,这还要去下载这个类才能使用,而我只想使用原生的php,不想那么麻烦,好在 也有网友说到关于原生php生成excel文件的方法,其实很简单,下面把我结合网上资料自己实践的代码分享一下. 一般我们这种导数据的操作都是通过用户在网页页面上点击某个按钮触发相应js方法,然后请求php接口来实现的,所以主要有两种 方法来完

asp.net 将repeater上数据导出到excel

1,首先得到一个DataTable public DataTable GetTable(string sql) { SqlConnnection con=new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstringname"].ConnectionString); con.Open(); SqlCommand cmd = new SqlCommand(sql, con); SqlDataAdapte

JavaScript将网页表格数据导出为Excel文件

不使用服务器端的技术,直接使用js将网页中的表格数据导出为excel文件,支持所有浏览器:前提条件是:网页中的表格数据必须使用table标签排版且不能有任何错误. <!DOCTYPE HTML> <html> <head> <title>javascript exportExcel</title> </head> <body> <table id="name" border="1&quo

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

数据导出至Excel文件--好库编程网http://code1.okbase.net/codefile/SerializeHelper.cs_2012122018724_118.htm

using System; using System.IO; using System.Data; using System.Collections; using System.Data.OleDb; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; /// <summary> /// Excel操作类 /// </summary> /// Microsoft Excel 11.0 Obj

tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', '5列') #需写入的数据,按照一行一行的输入 #元组数据的个数必须和列数一致 data = [('23','23','34','23','34'),('sadf','23','sdf','23','fsad')] #写入数据 mylist = tablib.Dataset(*data, head

Delphi 数据导出到Excel

好多办公软件特别是财务软件,都需要配备把数据导出到Excel,下面就来介绍两种数据导出方法 1.ADODB导出查询结果(此方法需要安装Excel) 2.二维表数据导出(根据Excel文件结构生成二进制文件流,不需要安装Excel) 3.如果涉及到复杂表头的(例如合并字段等),未做研究,下面也没介绍相关资料,请止步. 第一种,ADODB导出查询结果(此方法需要安装Excel) //uses DB, ADODB, ComObj, ComCtrls, excel2000, StdCtrls, adoi