推荐设备MORE

静态网页制作

静态网页制作

行业知识

微信小程序开源代码_NodeJs完成简略的爬虫功用案

日期:2021-01-08
我要分享
NodeJs实现简单的爬虫功能案例分析       爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本。这篇文章通过一个案例给大家分享NodeJs实现简单的爬虫功能,感兴趣的朋友一起看看吧

1.爬虫:爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本;利用NodeJS实现一个简单的爬虫案例,爬取Boss直聘网站的web前端相关的招聘信息,以广州地区为例;

2.脚本所用到的nodejs模块

express  用来搭建一个服务,将结果渲染到页面

  swig  模板引擎

  cheerio  用来抓取页面的数据

  requests  用来发送请求数据(具体可查:package/requests)

  async  用来处理异步操作,解决请求嵌套的问题,脚本中只使用了async.whilst(test,iteratee,callback),具体可见:

3.实现流程:

  首先先获取到所爬取页面的URL,打开boss直聘网站,搜索web前端既可以获取到

  然后通过Chrome浏览器打开F12,获取到信息中多对应的dom节点,即可知道想要获取信息;

  4.代码实现

  目录结构:

  app.js

var cheerio = require('cheerio');
var requests = require('requests');
var async = require('async');
var express = require('express');
var swig = require('swig');
var app = express();
swig.setDefaults({cache:false});
app.set('views','./views/');
app.set('view engine','html');
app.engine('html',swig.renderFile);
app.get('/',function(req,res,next){
 var page = 1; //当前页数
 var list = []; //保存记录
 async.whilst(
 function(){
 return page 
 function(callback){
 requests(`c-p100901/ page=${page} ka=page-next`)
 .on('data',function(chunk){
 var $ = cheerio.load(chunk.toString());
 $('.job-primary').each(function(){
 pany = $(this).find('.pany .company-text .name').text();
 var job_title = $(this).find('.info-primary .name .job-title').text();
 var salary = $(this).find('.info-primary .name .red').text();
 var description = $(this).find('.pany .company-text p').text();
 var area = $(this).find('.info-primary p').text();
 var item = {
 pany,
 job_title:job_title,
 salary:salary,
 description:description,
 area:area
 list.push(item);
 page++;
 callback();
 }).on('end',function(err){
 if(err){
 console.log(err);
 if(page==10){
 res.render('index',{
 lists:list
 function(err){
 console.log(err);
app.listen(8080);

页面

 !DOCTYPE html 
 html lang="en" 
 head 
 meta charset="UTF-8" 
 title Document /title 
 /head 
 style 
 table{
 width:1300px;
 border:1px solid #ccc;
 border-colla凡科抠图e: colla凡科抠图e;
 text-align: center;
 margin:0 auto;
 td,tr,th{
 border:1px solid #ccc;
 border-colla凡科抠图e: colla凡科抠图e;
 height:30px;
 line-height: 30px;
 /style 
 body 
 table 
 thead 
 th 公司名称 /th 
 th 公司地址 /th 
 th 薪资 /th 
 th 公司描述 /th 
 th 岗位名称 /th 
 /tr 
 /thead 
 tbody 
 {% for list in lists %}
 td {{pany}} /td 
 td {{list.area}} /td 
 td {{list.salary}} /td 
 td {{list.description}} /td 
 td {{list.job_title}} /td 
 /tr 
 {% endfor %}
 /tbody 
 /table 
 /body 
 /html 

5.启动

  直接通过 node app.js启动即可;

6.运行结果(),只截取部分数据

总结

以上所述是小编给大家介绍的NodeJs实现简单的爬虫功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对凡科网站的支持!