由于互联网的快速发展,大数据时代的来临,越来越多的网络爬虫谁用代理IP。那代理IP有什么作用呢?
代理IP就一个作用:请求转发。它相当于一个中转站,用户将请求发送到代理服务器,然后代理服务器将接受不了到到请求信息转发到目标网站,然后再将目标服务器响应的信息反馈给用户,这样就完成了一次代理请求。隧道转发的爬虫代理加强版的代理IP可以完美的隐藏用户的真实IP,使用户在受外部的IP限制的条件下满足自身业务的需求。
对于一些用户访问量比较大的网站,一般都会做一些防刷的限制,像一些电商网站,这个时候我们就可以用代理IP来处理。除此之外,像数据采集、市场分析等场景都需要使用隧道转发的爬虫代理加强版代理IP。
隧道转发爬虫代理加强版的优势:
1.代理ip可以伪装你的本地IP。网络爬虫访问的目标网站服务器无法记录真实请求ip,因为是代理ip帮网络爬虫发出请求的,所以对于目标网站来说,服务器记录到的请求ip是你设置的代理ip。如果一个IP多次访问目标网站,目标网站肯定会限制这个代理IP的访问,所以网络爬虫需要不停的更换代理IP。这时候就可以使用隧道转发的爬虫代理加强版,自动转发的代理IP。
// 要访问的目标页面
string targetUrl = "http://httpbin.org/ip";
// 代理服务器(产品官网 www.16yun.cn)
string proxyHost = "http://t.16yun.cn";
string proxyPort = "31111";
// 代理验证信息
string proxyUser = "username";
string proxyPass = "password";
// 设置代理服务器
WebProxy proxy = new WebProxy(string.Format("{0}:{1}", proxyHost, proxyPort), true);
ServicePointManager.Expect100Continue = false;
var request = WebRequest.Create(targetUrl) as HttpWebRequest;
request.AllowAutoRedirect = true;
request.KeepAlive = true;
request.Method = "GET";
request.Proxy = proxy;
//request.Proxy.Credentials = CredentialCache.DefaultCredentials;
request.Proxy.Credentials = new System.Net.NetworkCredential(proxyUser, proxyPass);
// 设置Proxy Tunnel
// Random ran=new Random();
// int tunnel =ran.Next(1,10000);
// request.Headers.Add("Proxy-Tunnel", String.valueOf(tunnel));
//request.Timeout = 20000;
//request.ServicePoint.ConnectionLimit = 512;
//request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36";
//request.Headers.Add("Cache-Control", "max-age=0");
//request.Headers.Add("DNT", "1");
//String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(proxyUser + ":" + proxyPass));
//request.Headers.Add("Proxy-Authorization", "Basic " + encoded);
using (var response = request.GetResponse() as HttpWebResponse)
using (var sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
{
string htmlStr = sr.ReadToEnd();
}