移动技术

使用node 来爬取(Python)页面的简单实现

2017-11-25  本文已影响0人  浪流儿

//当前的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采取事件的方式

https.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);

         })

});

图1
上一篇下一篇

猜你喜欢

热点阅读