• 简单实现nodejs爬虫工具


    约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 + "
    "
                }
                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.可以使用代理服务器去请求。但用户帐号不好伪造。
     
              
  • 相关阅读:
    codeforces 671C
    zoj3256
    hit2739
    hdu5737
    2017.1其他简要题解
    hdu5967
    初探插头dp
    11月下旬题解
    CompletableFuture的get和getNow()的区别
    python 镜像
  • 原文地址:https://www.cnblogs.com/Sroot/p/8543897.html
Copyright © 2020-2023  润新知