拾捌-NodeJS简单代理池(转)

1.缘起

原本的架构介绍如下:
拾肆-NodeJS简单代理池(起)

然后今天为了做其他需要把这个完善一下。

2.配置文件

原本就没用 ini配置文件存储方式,所以就用一个 JSON 文件存储配置,其中代码如下:

/**
 *读取配置文件并初始化。
 */
function funInit() {
    //读取配置文件
    let strConfig = fs.readFileSync(path.join(__dirname, '/cfg.json'), { encoding: "utf-8" });
    //文本转为对象
    let objConfig = JSON.parse(strConfig);
    //应用各种配置
    let arrSaveSet = objConfig.saveSet;
    let objWebCfg = objConfig.webCfg;
    objCTLIO = new cControllerIO(arrSaveSet);
    objCTSpy = new cControllerRequest(objWebCfg);
    objTimeConfig = objConfig.timeConfig;
    console.log(' 完成初始化 ');
    funGoPro();
};

JSON 有一个坏处,就是无法注释,只能增加多一个字段作为注释。

//原本为:
"saveSet": [{
  "libPath": "/IOEng/cIOMongodb.js",
  "dbName": "dbProxy",
  "host": "27017",
  "user": "Berry",
  "pw": "Berry",
  "col": "tbProxy"
}, {
  "libPath": "/IOEng //cIOJSON.js",
  "file": "../../proxy.json"
}]

//新增一字段,把内容写到该内容里面并作为字符改为:
"saveSet": [{
  "libPath": "/IOEng/cIOMongodb.js",
  "dbName": "dbProxy",
  "host": "27017",
  "user": "Berry",
  "pw": "Berry",
  "col": "tbProxy"
}],
"Comment": {
  "ForsaveSet": ", {'libPath': '/IOEng //cIOJSON.js','file': '../../proxy.json'}"
}

3.保存时加入时间

原本保存的内容只有两个内容:

ProxyContent:[
  {
    u:"119.101.118.126",
    p:"9999"
  }
]

现在需要增加保存时间为:

ProxyContent:[
  {
    u:"119.101.118.126",
    p:"9999",
    ft:1580267620322
  }
]

4.修改检测数据库是否存在该代理

因为前期存入数据库只存入代理地址代理端口,故在新增字段之后是会检测不到存在的,所以只能修改为查找数据库时只查找地址以及端口,以针对 MongoDB驱动为例,修改一下:

//修改前
checkProxyExist(objProxy = {}, funCB) {
    ....
      db.collection(that.dbSet.col).findOne(objProxy, {}, function(err, item) {
    ....
    };

//修改后
checkProxyExist(objProxy = {}, funCB) {
    ....
      db.collection(that.dbSet.col).findOne({ u: objProxy.u, p: objProxy.p }, {}, function(err, item) {
    ....
    };

5.修改循环流程

原本的流程图为:

原始的流程图

更改后的流程图:


好像很复杂

6.修改这个算是完成了吧

测试好像还需要一段时间,就先整理一下今天要做的事情:

  • 把前期做的代理池修改一下
  • 在腾讯云服务器上配置PM2
  • 找寻 Python 爬虫相关包及方法
  • 思考关键字舆情该怎么保存
  • 吃个好早餐
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,040评论 0 15
  • 白键52个,黑键36个,一共88个,连着的二个黑键左边的唱刀,1号的音名叫c,CDEFGAB这样的顺序,每7个是一...
    Hi_张阅读 83评论 0 0
  • 有人已经起跑,有人慢慢溜达,有人起点张望,你怎么对待你的时间,你的时间会复利给你,好的坏的自己承担,快要淹死的人说...
    啸儿的天空阅读 648评论 0 1
  • 2017年已经过去,回首2017,往事如烟,反思自己这一年,只记得自己很忙,忙什么?不知道,因为感觉自己什么都没有...
    ijava阅读 590评论 0 5
  • 图文无关 面掩春花后 情话辗转未出口 风吹池水皱 大概讲的就是羞涩的少女情话酝酿半天却没有勇气说出口 怕心意被发现...
    劣疏阅读 254评论 0 3