忘记密码

成功验证手机号即可找回密码

请输入密码
请确认密码
用户登录
请输入密码
忘记密码
注册免费试用
注册立领免费IP
请输入密码
复制成功
请粘贴在新的浏览器或标签页内打开
确定
账户余额不足10元

为了不影响您的正常使用,请及时充值!

我知道了

恭喜您注册成功!
已成功领取账户余额

25 1
立即领取

手机号绑定成功!
已成功领取账户余额

25 1
立即领取
首页> 常见问题> NodeJS怎么使用爬虫HTTP代理IP抓取数据?

NodeJS怎么使用爬虫HTTP代理IP抓取数据?

发布日期 2019-12-21         

  怎么用NodeJS来使用爬虫HTTP代理IP抓取数据呢?跟着小编一起看看吧

  NodeJS整合代码如下:

  /**

  * 请确保安装了request和bluebird两个模块

  * 安装模块:打开NODEJS-->输入npm install request-->输入npm install bluebird

  **/

  var request = require("request");

  var Promise = require("bluebird");

  // 请填写芝麻代理订单号

  var order = 'please-input-your-order-here';

  // 要测试的网址

  var targetURL = 'http://ip.chinaz.com/getip.aspx';

  // 请求超时时间

  var timeout = 8000;

  // 测试次数

  var testTime = 5;

  // 间隔多少毫秒调用一次接口

  var sleepTime = 5000;

  var apiURL = 'http://api.ip.data5u.com/dynamic/get.html?order=' + order + '&sep=3';

  console.log('>>>> start test dynamic ip');

  function getProxyList() {

  return new Promise((resolve, reject) => {

  var options = {

  method: 'GET',

  url: apiURL,

  gzip: true,

  encoding: null,

  headers: {},

  };

  request(options, function (error, response, body) {

  try {

  if (error) throw error;

  var ret = (body + '').match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}/g);

  resolve(ret);

  } catch (e) {

  return reject(e);

  }

  });

  });

  }

  function execute(){

  getProxyList().then(function (proxyList) {

  var targetOptions = {

  method: 'GET',

  url: targetURL,

  timeout: timeout,

  encoding: null,

  };

  proxyList.forEach(function (proxyurl) {

  console.log(`* testing `);

  var startTimestamp = (new Date()).valueOf();

  targetOptions.proxy = 'http://' + proxyurl;

  request(targetOptions, function (error, response, body) {

  try {

  if (error) throw error;

  body = body.toString();

  var endTimestamp = (new Date()).valueOf();

  console.log(' > time ' + (endTimestamp - startTimestamp) + 'ms ' + body);

  } catch (e) {

  console.error(e);

  }

  });

  });

  }).catch(e => {

  console.log(e);

  })

  }

  // 定时执行

  if(testTime > 0){

  execute()

  } else {

  clearInterval(interval);

  console.log('<<<< end test dynamic ip');

  }

  testTime = testTime - 1;

  }, sleepTime);

  芝麻HTTP与你共享每一天欢乐时光。


芝麻HTTP NodeJS 爬虫代理
客户经理
279823118 18905201382