你的位置:首页 > 软件开发 > Java > 基于node.js实现一个小小的爬虫

基于node.js实现一个小小的爬虫

发布时间:2015-04-07 20:00:54
以前一直听说有爬虫这种东西,稍微看了看资料,貌似不是太复杂。正好了解过node.js,那就基于它来个简单的爬虫。 1.本次爬虫目标:从拉钩招聘网站中找出“前端开发”这一类岗位的信息,并作相应页面分析,提取出特定的几个部分如岗位名称、岗位 ...

基于node.js实现一个小小的爬虫

以前一直听说有爬虫这种东西,稍微看了看资料,貌似不是太复杂。

正好了解过node.js,那就基于它来个简单的爬虫。

 

1.本次爬虫目标:

从拉钩招聘网站中找出“前端开发”这一类岗位的信息,并作相应页面分析,提取出特定的几个部分如岗位名称、岗位薪资、岗位所属公司、岗位发布日期等。并将抓取到的这些信息,展现出来。

 

初始拉钩网站上界面信息如下:

基于node.js实现一个小小的爬虫

 

2.设计方案:

爬虫,实际上就是通过相应的技术,抓取页面上特定的信息。

这里主要抓取上图所示岗位列表部分相关的具体岗位信息。

首先,抓取,就得先有地址url:

http://www.lagou.com/jobs/list_%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91?kd=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91&spc=1&pl=&gj=&xl=&yx=&gx=&st=&labelWords=label&lc=&workAddress=&city=%E5%85%A8%E5%9B%BD&requestId=&pn=1

这个链接就是岗位列表的第一页的网页地址。

我们通过对地址的参数部分进行分析,先不管其他选择的参数,只看最后的参数值:pn=1

我们的目的是通过page来各个抓取,所以设置为pn = page;

基于node.js实现一个小小的爬虫

其次,爬虫要获取特定信息,就需要特定代表的标识符。

这里采用分析页面代码标签值、class值、id值来考虑。

通过Firebug对这一小部分审查元素

基于node.js实现一个小小的爬虫

基于node.js实现一个小小的爬虫

分析得出将要获取哪些信息则需要对特定的标识符进行处理。

 

3.代码编写:

按照预定的方案,考虑到node.js的使用情况,通过其内置http模块进行页面信息的获取,另外再通过cheerio.js模块对DOM的分析,进而转化为json格式的数据,控制台直接输出或者再次将json数据传送回浏览器端显示出来。

(cheerio.js这东西的用法很简单,详情可以自行搜索一下。其中最主要的也就下边这份代码了,其余的跟jQuery的用法差不多。

就是先将页面的数据load进来形成一个特定的数据格式,然后通过类似jq的语法,对数据进行解析处理)

var cheerio = require('cheerio'),  $ = cheerio.load('<h2 >Hello world</h2>');$('h2.title').text('Hello there!');$('h2').addClass('welcome');$.html();//=> <h2 >Hello there!</h2>

原标题:基于node.js实现一个小小的爬虫

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。