实践出真知-C Sharp中集成ip代理(以亿牛云爬虫代理为例) 一、前言 公司最近新增了一个项目需要爬取航空信息数据,对方有ip屏蔽。所以我需要在C Sharp中实现ip自动切换,才能够完成爬取任务。 在此之前,我找过网上很多家代理测

Mmz_1 · · 520 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

实践出真知-C Sharp中集成ip代理(以亿牛云爬虫代理为例) 一、前言 公司最近新增了一个项目需要爬取航空信息数据,对方有ip屏蔽。所以我需要在C Sharp中实现ip自动切换,才能够完成爬取任务。 在此之前,我找过网上很多家代理测试。都是通过api接口进行ip的调用,可能是之前代码没有调整好,导致测试没有成功。(后面有机会再测试)。这两天了解了一家新的代理商叫亿牛云,他们有提供一种新的代理使用模式,动态转发,所以这边就以他们家的代理为例测试看下。 二 亿牛云范例 亿牛云官网有直接给出对应的语言的代码示例我选择的是C Sharp C Sharp代码示例 // 要访问的目标页面 string targetUrl = "http://httpbin.org/ip"; // 代理服务器 string proxyHost = "http://t.16yun.cn"; string proxyPort = "6447"; // 代理隧道验证信息 string proxyUser = "16IXNGXO"; string proxyPass = "366338"; // 设置代理服务器 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(); } 这是代码的示例,这个demo是可以直接复制使用的,所以我就直接复制了,其中代理的配置是需要联系客服开通代理才可以获取的信息。 三 注意事项 亿牛云的爬虫代理最低支持ip是1秒钟请求5请求,(如果需要更大的请求量,可以选项对应的产品)。所以,当他是默认是5请求的时候,我需要对爬虫进行限速。

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

520 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传