nodejs实现拉钩网爬虫
技术:nodejs6.x+mysql2.x
概述
通过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、程序实现的目录结构如下:
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、数据库设计截图
上面是本例子的数据库截图,其中id是主键,同时是自增的。
4、连接数据库注意点
下面的user和password的值是你安装数据库时候设置的,请自己修改
const pool = mysql.createPool({ connectionLimit:10, database:TEST_DATABASE, user:"root", password:"root" });
三、运行效果
首先cd到src目录下,然后简单的运行下面的命令就可以了:
node index.js
下面是数据库抓取的部分信息截图:
四、其他补充
如果你需要增加更多功能,可以在demo大师的"没有找到例子?"功能提出,我会增加例子,谢谢
本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码