爬虫过程中解决一些网站针对 IP 访问次数限制。下面进行简单模拟:
服务端: server.js
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | var http = require('http');
 http.createServer(function(request, response) {
 
 // 获取客户端 IP
 var ip = request.headers['x-forwarded-for'] ||
 request.connection.remoteAddress ||
 request.socket.remoteAddress ||
 request.connection.socket.remoteAddress;
 console.log(request.headers);
 console.log(request.httpVersion);
 console.log(request.method);
 console.log(request.url);
 console.log(ip);
 console.log('-----------')
 response.write("OK");
 response.end();
 }).listen(8889);
 
 | 
正常请求
客户端: index.js
| 12
 3
 4
 5
 6
 7
 
 | var request = require("request")// 未加代理的情况
 request('https://104.194.66.230:8889/', function (error, response, body) {
 console.log('error:', error);
 console.log('statusCode:', response && response.statusCode);
 console.log('body:', body);
 });
 
 | 
  
 
客户端使用代理
客户端: index.js
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | var request = require("request")request({
 'url':'https://104.194.66.230:8889/',
 'proxy':'https://111.7.130.36:8080' // proxy
 },
 function (error, response, body) {
 console.log('error:', error);
 console.log('statusCode:', response && response.statusCode);
 console.log('body:', body);
 }
 );
 
 | 
 