当前位置: 首页 > news >正文

node.js来爬取智联全国的竞争最激烈的前十岗位

node爬虫

什么是爬虫呢,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。为什么选用node呢,因为我是前端,当然要用js实现。

项目分析

爬取http://top.zhaopin.com 智联网站上的全国的竞争最激烈三个月内前十的岗位。不需要定时爬取。使用request和cheerio模块。node版本7.6.0、npm版本4.1.2

安装

npm install request cheerio -S
复制代码

request 模块是一个简化的HTTP客户端。 cheerio 模块专为服务器设计的核心jQuery的快速,灵活和精益的实现。可以把爬到的内容和jQuery一样使用。

核心代码

// app.js
const request = require('request');
const cheerio = require('cheerio');

// 发起请求
request('http://top.zhaopin.com', (error, response, body) => {
    if(error){
        console.error(error);
    }
    let json = {};
    // 获取到的内容放到cheerio模块
    const $ = cheerio.load(body);

    // jQuery 遍历  #hotJobTop .topList li  是通过http://top.zhaopin.com 分析页面结构得到的
    $('#hotJobTop .topList li').each(function (index) {
        let obj = json[index] = {};
        obj.name = $(this).find('.title').text().trim();
        obj.num = $(this).find('.paddingR10').text().trim();
    });

    // 打印数据
    console.log(json);
});
复制代码

执行 node app.js 就会得到如下结果。

[ { name: 'Java开发工程师', num: '340538人/天' },
  { name: '软件工程师', num: '220873人/天' },
  { name: '销售代表', num: '175053人/天' },
  { name: '会计/会计师', num: '168225人/天' },
  { name: '行政专员/助理', num: '150913人/天' },
  { name: 'WEB前端开发', num: '140979人/天' },
  { name: '助理/秘书/文员', num: '139098人/天' },
  { name: '软件测试', num: '136399人/天' },
  { name: '人力资源专员/助理', num: '123482人/天' },
  { name: '用户界面(UI)设计', num: '107505人/天' } ]
复制代码

一个简单的爬虫就写好了,看看前十有没有你从事的岗位吧!

我的博客和github地址

blog.langpz.com

github.com/lanpangzhi

参考

github.com/request/req…

github.com/cheeriojs/c…

相关文章:

  • css颜色代码大全:(网页设计师和平面设计师常用)
  • python3.6+scrapy+mysql 爬虫实战
  • 数据库分库分表思路
  • linux考试
  • 在路上 - 精选
  • perl anyevent
  • 2018全球互联网经济大会,春季峰会在南京开幕
  • 不止于IaaS,运营商要用PaaS构筑生态竞争力
  • 分享:使用 Raspberry Pi 远程桌面
  • 通过5个研发机构,南京开发区“裂变”出了153家企业
  • libevent入门教程:Echo Server based on libevent
  • 初尝量子计算开放果实
  • Logger之Logger.getLogger(CLass)
  • 分享:Meteor 0.5.3 发布,Web 应用构建平台
  • Redhat6.5搭建ftp服务
  • JavaScript-如何实现克隆(clone)函数
  • 10个确保微服务与容器安全的最佳实践
  • centos安装java运行环境jdk+tomcat
  • es6(二):字符串的扩展
  • Java深入 - 深入理解Java集合
  • JSDuck 与 AngularJS 融合技巧
  • text-decoration与color属性
  • 分布式任务队列Celery
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 入门级的git使用指北
  • 小而合理的前端理论:rscss和rsjs
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 智能合约开发环境搭建及Hello World合约
  • postgresql行列转换函数
  • 函数计算新功能-----支持C#函数
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​2020 年大前端技术趋势解读
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (力扣)循环队列的实现与详解(C语言)
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)http协议
  • (轉貼) UML中文FAQ (OO) (UML)
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET CORE Aws S3 使用
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net mvc总结
  • .NET命名规范和开发约定
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • @RequestBody与@ResponseBody的使用
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • @SuppressWarnings注解
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [22]. 括号生成