代理云

申请试用
 
主页  >  行业动态  >  文章详情
 

c#爬虫代理ip,做C#爬虫必备代理ip

来源:官方 发布:2017-05-16

  C#爬虫代理IP应该用什么方法


  c#爬虫代理ip,做C#爬虫必备代理ip介绍一:WebProxy:即HTTP代理设置。


  官方解释:WebProxy类包含WebRequest实例用以确定是否使用Web代理发送请求的代理设置。可以在计算机和应用程序配置文件中指定全局Web代理设置,并且应用程序可用WebProxy类的实例自定义Web代理的用途。


个人理解:即将代理IP、Port进行封装及ip地区分部,并设置代理IP的用户名及密码,通过该用户名和密码登陆登陆代理主机并进行相关访问。


  《代理云四大优势,稳固品牌地位》


  1、资源优势:代理节点覆盖全国各省市


  聚合多种高质量节点资源,其中拨号节点600+,个人节点20000+,散段IP随机分配。


  2、技术优势:自主研发的代理服务器


  超过8年研发高性能web服务器,具有丰富的大规模分布式系统设计经验。


  3、服务优势:1v1服务,提升客户价值


  从注册账户到客户消费,您都可以享受代理云平台贯穿生命周期的尊贵1v1服务。


  4、经验优势:行业定制方案超过80例


  4年内为多家小中企业定制专属代理服务器池方案。客户好评率高达99%。


  c#爬虫代理ip,做C#爬虫必备代理ip介绍二:HttpWebClientProtocol:所有使用HTTP传输协议的xmlWebservices客户端代理的基类。


  在调用易行接口时,会动态编译源码,将编译后创建的实例强制转换成HttpWebClientProtocol类型,并在HttpWebClientProtocol中附上proxy类型,即可使用代理IP进行访问。


  c#爬虫代理ip,做C#爬虫必备代理ip介绍三:代理IP的优势有哪些呢?在HttpWebRequest、WebClien、HttpWebClientProtocol都可以使用代理IP。


  一:HttpWebRequest:已Http形式抓取网页,仅需在发起http前给request加上proxy属性即可,下面就是使用代理IP抓取百度首页的案例,大家可以参考:


  HttpWebRequesthttpRequest=(HttpWebRequest)HttpWebRequest.Create("");


  httpRequest.Method="GET";


  httpRequest.Credentials=CredentialCache.DefaultCredentials;


  //设置代理属性WebProxy-------------------------------------------------


  WebProxyproxy=newWebProxy();


  proxy.Address=newUri(":888/");


  proxy.Credentials=newNetworkCredential("juese","1029");


  //在发起HTTP请求前将proxy赋值给HttpWebRequest的Proxy属性


  httpRequest.Proxy=proxy;


  //-------------------------------------------------


  HttpWebResponseres=(HttpWebResponse)httpRequest.GetResponse();


  StreamReaderreader=newStreamReader(res.GetResponseStream(),System.Text.Encoding.UTF8);


  stringcontent=reader.ReadToEnd();


  reader.Close();


  二:WebClien:与上面类似,


  WebClientwc=newWebClient();


  WebProxyproxy=newWebProxy();


  proxy.Address=newUri(":888/");


  proxy.Credentials=newNetworkCredential("juese","1029");


  wc.Proxy=proxy;


  StreamPageHtml=wc.OpenRead("");


  StreamReaderreader=newStreamReader(PageHtml,System.Text.Encoding.UTF8);


  stringcontent=reader.ReadToEnd();


  returncontent;


  三:HttpWebClientProtocol:针对webService的代理IP使用(详情可参加TTS交互服务的WebServiceHelper.cs):


  //获取WSDL


  WebClientwc=newWebClient();


  stream=wc.OpenRead(url);


  ServiceDescriptionsd=ServiceDescription.Read(stream);


  ServiceDescriptionImportersdi=newServiceDescriptionImporter();


  sdi.AddServiceDescription(sd,string.Empty,string.Empty);


  CodeNamespacecn=newCodeNamespace(@namespace);


  //生成客户端代理类代码


  CodeCompileUnitccu=newCodeCompileUnit();


  ccu.Namespaces.Add(cn);


  sdi.Import(cn,ccu);


  CSharpCodeProvidericc=newCSharpCodeProvider();


  //设定编译参数


  CompilerParameterscplist=newCompilerParameters();


  cplist.GenerateExecutable=false;


  cplist.GenerateInMemory=true;


  cplist.ReferencedAssemblies.Add("System.dll");


  cplist.ReferencedAssemblies.Add("System.xml.dll");


  cplist.ReferencedAssemblies.Add("System.Web.Services.dll");


  cplist.ReferencedAssemblies.Add("System.Data.dll");


  ////此处不停编译,会造成内存泄露


  //编译代理类


  cr=icc.CompileAssemblyFromDom(cplist,ccu);


  //生成代理实例,并调用方法


  System.Reflection.Assemblyassembly=cr.CompiledAssembly;


  Typet=assembly.GetType(@namespace+"."+classname,true,true);


  objectobj=Activator.CreateInstance(t);


  if(ConfigurationManager.AppSettings["UseYeexingProxy"]=="true")


  ICredentialscred;


  WebProxyp=null;


  varprox=objasHttpWebClientProtocol;


  stringproxyAddressAndPort=ConfigurationManager.AppSettings["ProxyIP"];


  stringproxyUserName=ConfigurationManager.AppSettings["ProxyName"];


  stringproxyPassword=ConfigurationManager.AppSettings["ProxyPwd"];


  cred=newNetworkCredential(proxyUserName,proxyPassword);


  p=newWebProxy(proxyAddressAndPort,true,null,cred);


  prox.Proxy=p;


  System.Reflection.MethodInfomi=t.GetMethod(methodname);


  returnmi.Invoke(prox,args);


  System.Reflection.MethodInfomi=t.GetMethod(methodname);


  returnmi.Invoke(obj,args);


最新文章
热门文章
Copyright©2014 版权归属 代理云 吉ICP备16003059号-5 增值电信经营许可证:B2-20170117
   
wee

商务洽谈

为保证客户使用质量,代理云采用渠道销售方式。
请联系下方商务人员洽谈需求!

 

商务 - 小卜

商务 - 老李

手机:153-2632-8586

手机:186-0054-4554