使用node 来爬取(Python)页面的简单实现
//当前的js文件为:spider.js
//注意:在终端打开项目目录,输入命令:node spider.js查看运行的结果
/*
*以下是js文件中的内容
*/
//引入文件操作模块,将获取的数据读写到指定的文件中
const fs = require("fs");
//要Python的目标网站,以拉勾网为例
let target = "https://www.lagou.com";
//引入协议模块,http模块和https模块都有能力向其他服务器接口发送请求,依靠的是get、request方法
//根据要爬取的目标网站来定引入的协议模块
const https = require("https");
//发送一个get请求,res是一个返回的对象,里面并没有直接包含数据,需要使用data事件来接收返回的数据
//且每次返回的只是一个片段,所以会触发多次,因为请求到的数据量特大,如果一次性返回可能导致服务器崩溃,所以node采取事件的方式
图1https.get(target,function(res){
let result = "";
//data事件为异步事件
res.on("data",(chunk) =>{
//此时chunk输出的是如下图1所示的一条条数据编码
//console.log(chunk);
//解决的办法是定义一个空的字符串对chunk进行拼接转换成我们想要的数据
result += chunk;
})
//end事件表示数据接收完毕,即当数据接收完毕后end事件才会触发
//注意网速过慢会影响该事件的触发进程,请保持网络通畅
res.on("end",()=>{
//此时result输出的就是转码后我们想获去的网页内容(html数据)
//console.log(result);
//将输出的数据写到html文件中
/*
* 参数1:要写入的目标文件,如果目录中不存在,会自行创建
* 参数2:要写入的数据
*/
//执行完成后,就可以在文档目录中查看lagou.html文件了,运行一下,拉钩的 首页就出现在你面前了
fs.writeFileSync("lagou.html",result);
})
});