关于 node.js 爬虫

2016-07-09 16:24:01 +08:00
 haixu7

前端小白,因为想找一份前端开发的工作,所以想用 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('获取失败');
});
3012 次点击
所在节点    问与答
10 条回复
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 框架实际上是后端的事情,你要找前端工作,首先不应该是折腾前端上的么…
haixu7
2016-07-09 16:38:20 +08:00
@shiny 谢谢指点!因为上个月刚毕业。。我在想是不是可以做个爬虫,出去面试的时候也算是自己的一个小项目。
banricho
2016-07-09 16:54:28 +08:00
Node.js 不是后端吗😂
haixu7
2016-07-09 17:00:02 +08:00
@banricho 话说我发错力了。。?我只是想在面试的时候有一个拿得出手的小项目
xwartz
2016-07-09 17:20:52 +08:00
很早之前写过一个爬图的 https://github.com/xwartz/spider , 也就是解析下 html 或者 xml 。


图形展现的话可以用 [echarts]( http://echarts.baidu.com/api.html#echarts)
DoraJDJ
2016-07-09 17:25:23 +08:00
@haixu7 没, Node.js 不仅可以写后端也可以写桌面和命令行应用的。
可以看看 Atom 、 VSCode 这些应用,都是用 Electron ( Node.js 的桌面应用库)写的
johnhsm2333
2016-07-09 18:51:40 +08:00
@DoraJDJ 那个的话,我认为是把 nodejs 融合到浏览器里面去了。纯 nodejs 还是写后端比较多。
DoraJDJ
2016-07-09 18:55:17 +08:00
@johnhsm2333 嗯, Electron 还有 Nw.js 这些东西就是弄了一个简单的浏览器窗口,然后界面用 HTML 写,后端用 Node.js 。
fyh1807008
2016-07-09 20:07:34 +08:00
为了找前端工作的话, nodejs 加分权重太低,吃力不讨好。不如鼓捣 angualrjs,reactjs 。
简单粗暴的话, jquery 用用好也能找到工作
haixu7
2016-07-09 23:43:19 +08:00
@fyh1807008 好的。我明白了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/291361

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX