zoukankan      html  css  js  c++  java
  • nodejs实现拉钩网爬虫

    概述

    通过nodejs+mysql+cheerio+request实现拉钩网特定公司的所有招聘信息的抓取,并将抓取的信息保存到数据库中。抓取内容包括:薪酬福利,工作地,职位要求,工作性质等几乎所有的内容。对于nodejs实现爬虫不了解的同学可以看过来,代码中有详细的注释,通俗易懂。

    详细

    一、准备工作

    1、安装最新版本的nodejs,其中npm会被自动安装

    2、安装该项目需要的包

    npm install cheerio jsdom mysql request -S

    其中package.json中的内容为:

    "dependencies": {
        "cheerio": "^1.0.0-rc.1",
        "jsdom": "^11.0.0",
        "mysql": "^2.13.0",
        "request": "^2.81.0"
      }

    二、程序实现

    1、程序实现的目录结构如下:

    qqq.png

    2、实现思路如下:

    index.js:程序主文件,各种数据清洗工作,url构造在这个文件中完成

    Job.js : 用于构建Job对象,有助于写入数据库

    db.js:连接数据库并写入数据

    url_construct.js:可以自己配置抓取那些公司的职位信息。如阿里巴巴,百度,腾讯等。部分代码如下:

    const companyNames = ["网易","阿里巴巴","百度","腾讯","去哪儿","浪潮"];
    const encodedCompanyNames = [];
    //转化为urlencoded
    for(let i=0;i<companyNames.length;i++){
      encodedCompanyNames.push(encodeURIComponent(companyNames[i]));
    }
    module.exports = encodedCompanyNames;

    3、数据库设计截图

    mysql.png

    上面是本例子的数据库截图,其中id是主键,同时是自增的。

    4、连接数据库注意点

    下面的user和password的值是你安装数据库时候设置的,请自己修改

    const pool = mysql.createPool({
      connectionLimit:10,
      database:TEST_DATABASE,
      user:"root",
      password:"root"
    });

    三、运行效果

    首先cd到src目录下,然后简单的运行下面的命令就可以了:

    node index.js

    下面是数据库抓取的部分信息截图:

    job.png

    四、其他补充

    如果你需要增加更多功能,可以在demo大师的"没有找到例子?"功能提出,我会增加例子,谢谢

    注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

  • 相关阅读:
    分页
    uuid算法
    mysql卸载安装
    安装和破解收费版idea
    css样式一开始不显示,点击显示隐藏
    各种技术网址
    vue加载高德地图,加标记点,点出文本框
    Security Traps 玩耍剧透(持续更新)
    最近做的一个小玩意踩的坑
    最近刷题的一个总结
  • 原文地址:https://www.cnblogs.com/demodashi/p/8476751.html
Copyright © 2011-2022 走看看