node爬虫实现ajax,手把手教你用Node.js爬虫爬取网站数据的方法

本文介绍了如何利用Node.js的SuperAgent库获取网页内容,结合Cheerio实现对Boss直聘网站前端职位信息的抓取。通过解析HTML,提取职位的标题、薪资、公司名、地址、职位类型等关键信息,并保存为JSON文件,为数据爬取和分析提供了基础步骤。
摘要由CSDN通过智能技术生成

开始之前请先确保自己安装了Node.js环境,还没有安装的的童鞋请看一下安装教程......

直接开始吧

1.在项目文件夹安装两个必须的依赖包

SuperAgent(官网是这样解释的)

-----SuperAgent is light-weight progressive ajax API crafted for flexibility,readability,and a low learning curve after being frustrated with many of the existing request APIs. It also works with Node.js!

-----superagent 是一个轻量的,渐进式的ajax api,可读性好,学习曲线低,内部依赖nodejs原生的请求api,适用于nodejs环境下

Cheerio

-----cheerio是nodejs的抓取页面模块,为服务器特别定制的,快速、灵活、实施的jQuery核心实现。适合各种Web爬虫程序。相当于node.js中的jQuery

2.新建 crawler.js 文件

const superagent = require("superagent");

const cheerio = require("cheerio");

3.看注释啦(这里爬取的是boss直聘网站的数据)

superagent

.get("https://www.zhipin.com/job_detail/?city=100010000&source=10&query=%E5%89%8D%E7%AB%AF")

.end((error,response)=>{

//获取页面文档数据

var content = response.text;

//cheerio也就是nodejs下的jQuery 将整个文档包装成一个集合,定义一个变量$接收

var $ = cheerio.load(content);

//定义一个空数组,用来接收数据

var result=[];

//分析文档结构 先获取每个li 再遍历里面的内容(此时每个li里面就存放着我们想要获取的数据)

$(".job-list li .job-primary").each((index,value)=>{

//地址和类型为一行显示,需要用到字符串截取

//地址

let address=$(value).find(".info-primary").children().eq(1).html();

//类型

let type=$(value).find(".info-company p").html();

//解码

address=unescape(address.replace(//g,'%u').replace(/;/g,''));

type=unescape(type.replace(//g,''))

//字符串截取

let addressArr=address.split('');

let typeArr=type.split('');

//将获取的数据以对象的形式添加到数组中

result.push({

title:$(value).find(".name .job-title").text(),money:$(value).find(".name .red").text(),address:addressArr,company:$(value).find(".info-company a").text(),type:typeArr,position:$(value).find(".info-publis .name").text(),txImg:$(value).find(".info-publis img").attr("src"),time:$(value).find(".info-publis p").text()

});

// console.log(typeof $(value).find(".info-primary").children().eq(1).html());

});

//将数组转换成字符串

result=JSON.stringify(result);

//将数组输出到json文件里 刷新目录 即可看到当前文件夹多出一个boss.json文件(打开boss.json文件,ctrl+A全选之后 ctrl+K,再Ctrl+F即可将json文件自动排版)

fs.writeFile("boss.json",result,"utf-8",(error)=>{

//监听错误,如正常输出,则打印null

if(error==null){

console.log("恭喜您,数据爬取成功!请打开json文件,先Ctrl+A,再Ctrl+K,最后Ctrl+F格式化后查看json文件(仅限Visual Studio Code编辑器)");

}

});

});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值