简单实现nodejs爬虫工具

时间:2022-04-08 20:41:29

约30行代码实现一个简单nodejs爬虫工具,定时抓取网页数据。

 

使用npm模块

request---简单http请求客户端。(轻量级)
fs---nodejs文件模块。
 
index.js
var request = require('request');
var fs = require("fs");

var JJurl = "https://recommender-api-ms.juejin.im/v1/get_recommended_entry?suid=6bYFY7IRbfmijiJeeeIQ&ab=welcome_3&src=web"
var title = ""

var options = {
    uri: JJurl,
    headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36',
    },
    json: true
};

setInterval(function() {
    request(options, function(error, response, body) {
        if (!error) {
            for (var i in body.d) {
                title += body.d[i].title + "\n"
            }
            fs.writeFile('./result.txt', title, function(err) {
                if (err) {
                    throw err;
                }
            });
        } else {
            console.log('抓取失败')
        }
    });
}, 5000);

 

补充:服务端反爬虫技术
          1.判断headers 中的参数。
          2.检查cookies存在。
          3.通过ip地址或者用户帐号。
          PS:不知是不是为了反爬虫才让用户强制登录。
                  通过flash的形式与服务端交互应该比较少见。
                  ajax请求后对数据进行混淆,前端是不可能加密的。
 
          
         客户端爬虫技术
         1.可以伪造请求头的参数。设置用户代理等参数,具体可以查看浏览器请求。
         2.可以保存服务端回传cookie,可以保存cookie,以便请求携带cookie。
         3.可以使用代理服务器去请求。但用户帐号不好伪造。