前端小白,因为想找一份前端开发的工作,所以想用 node.js 做一个爬虫,爬取拉勾网上的招聘职位的信息,再做一个在线图形化的展示,现在只能通过手动修改 pn 得到某一页的 json 数据。所以想请教一下大家,通过什么方法能把所有页面自动遍历一遍呢,然后得到的 json 数据通过什么方式存起来?现在只能单纯的 console.log(),是需要用数据库吗?数据库的内容又怎么拿出来呢,而且本地数据库的信息好像也没办法做成在线的网页展示呀?
var http = require('http');
var url = 'http://www.lagou.com/jobs/positionAjax.jsonpx=default&first=true&city=%E5%8C%97%E4%BA%AC&pn=2&kd=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91'
var jobData = [];
http.get(url, function(res) {
var html = '';
res.on('data', function(data){
html += data;
});
res.on('end', function() {
var json = JSON.parse(html);
var aResult = json.content.positionResult.result;
aResult.forEach(function (item) {
// console.log(item.companyName);
// console.log(item.salary);
// console.log(item.workYear+'\n');
jobData.push({'companyName': item.companyName, 'salary': item.salary, 'workYear': item.workYear});
});
console.log(jobData);
});
}).on('error', function() {
console.log('获取失败');
});
1
shiny 2016-07-09 16:33:44 +08:00
我做过的爬虫:
1 、使用 ES6 语法 http://es6.ruanyifeng.com/ 2 、使用 Queue 做并发控制 http://caolan.github.io/async/docs.html#.queue 3 、数据库用 MySQL 入库 4 、内容展示可以使用 Web 框架,类似 ExpressJS http://expressjs.com/ 或者 ThinkJS https://thinkjs.org SQL 、 Web 框架实际上是后端的事情,你要找前端工作,首先不应该是折腾前端上的么… |
3
banricho 2016-07-09 16:54:28 +08:00 via Android
Node.js 不是后端吗😂
|
5
xwartz 2016-07-09 17:20:52 +08:00
很早之前写过一个爬图的 https://github.com/xwartz/spider , 也就是解析下 html 或者 xml 。
图形展现的话可以用 [echarts]( http://echarts.baidu.com/api.html#echarts) |
6
DoraJDJ 2016-07-09 17:25:23 +08:00 via Android
@haixu7 没, Node.js 不仅可以写后端也可以写桌面和命令行应用的。
可以看看 Atom 、 VSCode 这些应用,都是用 Electron ( Node.js 的桌面应用库)写的 |
7
johnhsm2333 2016-07-09 18:51:40 +08:00 via Android
@DoraJDJ 那个的话,我认为是把 nodejs 融合到浏览器里面去了。纯 nodejs 还是写后端比较多。
|
8
DoraJDJ 2016-07-09 18:55:17 +08:00
@johnhsm2333 嗯, Electron 还有 Nw.js 这些东西就是弄了一个简单的浏览器窗口,然后界面用 HTML 写,后端用 Node.js 。
|
9
fyh1807008 2016-07-09 20:07:34 +08:00
为了找前端工作的话, nodejs 加分权重太低,吃力不讨好。不如鼓捣 angualrjs,reactjs 。
简单粗暴的话, jquery 用用好也能找到工作 |
10
haixu7 OP @fyh1807008 好的。我明白了~
|