• 简单实现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.可以使用代理服务器去请求。但用户帐号不好伪造。
     
              
  • 相关阅读:
    pillow模块的用法 + 随机验证码
    jquery文件阅读器 显示需要上传图片的预览功能
    pycharm永久激活方式
    pycharm汉化
    10.25网络编程到并发编程
    10.15 迭代器,生成器到常用模块的小结
    10.14 面向对象小结
    十一天学习内容总结大纲
    pip镜像源的替换
    前端jQuery导入方式
  • 原文地址:https://www.cnblogs.com/Sroot/p/8543897.html
Copyright © 2020-2023  润新知