网络爬虫必须使用爬虫代理吗?

198 篇文章 0 订阅
189 篇文章 0 订阅

互联网上网络爬虫的崛起,HTTP代理也成了网络爬虫不可缺少的一部分,如果不使用HTTP代理,进行业务数据采集的工作就比较困难。网络爬虫简单来说就是模拟真实用户去访问网站获取数据信息。有的网站限制比较严格,就会限制本机的IP去访问,这时候就需要用到爬虫代理配合爬虫程序去模拟真实用户去采集数据。当然在选择使用爬虫代理的时候,一定要选择高匿稳定的爬虫代理,这样才能更加有效率的提升工作业务。在使用代理的过程中,爬虫代理IP虽然很重要,但是爬虫程序的优化也固然重要,光用代理不做优化,再好的爬虫代理使用久了之后,效果也会变差。所以爬虫程序的优化策略一定要做好。,网站通过检查RequestHeaders中的User-Agent、Referer参数,来判断该程序是不是爬虫程序。要绕过这种机制就比较简单,我们只需要在网页中先查看该网站所需要的User-Agent、Referer参数的值,然后在爬虫程序的RequestHeaders设置好这些参数来进行优化,具体优化策略分析网站的反爬机制做相关优化。
使用爬虫代理解决反爬虫策略:

// 要访问的目标页面
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();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值