HTTP代理在网络爬虫中很常见。HTTP代理分为正向代理和反向代理。
HTTP代理一般用于网络爬虫,数据分析,抢购等业务。网络爬虫通过HTTP代理向互联网发出请求从而获取相关数据。
HTTP代理的作用
1、网站翻墙
很多国外的网站的防火墙都会限制国内的IP进行访问,这时候就需要通过HTTP代理来进行翻墙之后才能正常访问采集相关数据。
2、匿名访问
互联网的网站会限制网络爬虫,爬虫工作者不愿意让目标网站识别出自己本机IP,这时候就需要亿牛云高匿代理IP去进行访问,隐藏自己的真实的本机IP。
3、代理上网
可以利用HTTP代理服务器进行联网
4、提高上网速度
许多HTTP代理服务器都有缓存,HTTP代理可以直接发出请求传输数据,提高浏览的速度
爬虫程序中设置HTTP代理
const http = require("http");
const url = require("url");
// 要访问的目标页面
const targetUrl = "http://httpbin.org/ip";
const urlParsed = url.parse(targetUrl);
// 代理服务器(产品官网 www.16yun.cn)
const proxyHost = "t.16yun.cn";
const proxyPort = "36600";
// 生成一个随机 proxy tunnel
var seed = 1;
function random() {
var x = Math.sin(seed++) * 10000;
return x - Math.floor(x);
}
const tunnel = random()*100;
// 代理验证信息
const proxyUser = "username";
const proxyPass = "password";
const base64 = new Buffer.from(proxyUser + ":" + proxyPass).toString("base64");
const options = {
host: proxyHost,
port: proxyPort,
path: targetUrl,
method: "GET",
headers: {
"Host": urlParsed.hostname,
"Proxy-Tunnel": tunnel,
"Proxy-Authorization" : "Basic " + base64
}
};
http.request(options, function (res) {
console.log("got response: " + res.statusCode);
res.pipe(process.stdout);
}).on("error", function (err) {
console.log(err);
}).end();
HTTP代理也有好坏之分,如果你需要在采集数据中要稳定高效的采集,建议使用高匿的自动转发的爬虫代理。
有疑问加站长微信联系(非本文作者)