问题描述
webrequest如何赚取需要登录的网站的内容
解决方案
解决方案二:
up
解决方案三:
帮顶网上搜下,多的
解决方案四:
namespaceCnlamar.Net{usingSystem;usingSystem.Net;usingSystem.Web;usingSystem.IO;usingSystem.Text;///<summary>///功能:取得Internet上的URL页的源码///</summary>publicclassCallWeb{#region私有变量///<summary>///网页URL地址///</summary>privatestringurl=null;///<summary>///是否使用代码服务器:0不使用1使用代理服务器///</summary>privateintproxyState=0;///<summary>///代理服务器地址///</summary>privatestringproxyAddress=null;///<summary>///代理服务器端口///</summary>privatestringproxyPort=null;///<summary>///代理服务器用户名///</summary>privatestringproxyAccount=null;///<summary>///代理服务器密码///</summary>privatestringproxyPassword=null;///<summary>///代理服务器域///</summary>privatestringproxyDomain=null;#endregion#region公共属性///<summary>///欲读取的URL地址///</summary>publicstringUrl{get{returnurl;}set{url=value;}}///<summary>///是否使用代理服务器标志///</summary>publicintProxyState{get{returnproxyState;}set{proxyState=value;}}///<summary>///代理服务器地址///</summary>publicstringProxyAddress{get{returnproxyAddress;}set{proxyAddress=value;}}///<summary>///代理服务器端口///</summary>publicstringProxyPort{get{returnproxyPort;}set{proxyPort=value;}}///<summary>///代理服务器账号///</summary>publicstringProxyAccount{get{returnproxyAccount;}set{proxyAccount=value;}}///<summary>///代理服务器密码///</summary>publicstringProxyPassword{get{returnproxyPassword;}set{proxyPassword=value;}}///<summary>///代理服务器域///</summary>publicstringProxyDomain{get{returnproxyDomain;}set{proxyDomain=value;}}publicstringMethod{get{return_Method;}set{_Method=value;}}privatestring_Method;publicstring[]PostData{get{return_PostData;}set{_PostData=value;}}privatestring[]_PostData;publicEncodingMyEncoding{get{return_MyEncoding;}set{_MyEncoding=value;}}privateEncoding_MyEncoding;#endregion#region公共方法///<summary>///读取指定URL地址,存到指定文件中///</summary>publicstringGet(){stringResponseText=String.Empty;WebRequestrequest=WebRequest.Create(this.url);if(Method!=null&&Method!=String.Empty){request.Method=Method;}//使用代理服务器的处理if(this.proxyState==1){//默认读取80端口的数据if(this.proxyPort==null)this.ProxyPort="80";WebProxymyProxy=newWebProxy();myProxy=(WebProxy)request.Proxy;myProxy.Address=newUri(this.ProxyAddress+":"+this.ProxyPort);myProxy.Credentials=newNetworkCredential(this.proxyAccount,this.proxyPassword,this.ProxyDomain);request.Proxy=myProxy;}//请求服务if(Method=="POST"){stringstrPostData=String.Empty;for(inti=0;i<PostData.Length;i++){strPostData+=PostData[i]+"&";}strPostData=strPostData.TrimEnd('&');byte[]bytePostData=MyEncoding.GetBytes("?"+strPostData);StreampostStream=request.GetRequestStream();postStream.Write(bytePostData,0,bytePostData.Length);postStream.Close();}System.Net.WebResponseresponse=request.GetResponse();//返回信息StreamresStream=response.GetResponseStream();StreamReadersr=newStreamReader(resStream,MyEncoding);ResponseText=sr.ReadToEnd();resStream.Close();sr.Close();returnResponseText;}#endregion}}
解决方案五:
不对呀,还是获取了登录页面的内容,没有登录上去。。
解决方案六:
这个问题先解决图片验证码的识别问题
解决方案七:
没有验证码,我测试了本地的,登录时靠按钮事件触发的,这样是不是不能用post?
解决方案八:
看过火车头采集器是要配置登录信息才行具体没搞过
解决方案九:
http://www.cnblogs.com/ziyang/archive/2008/07/10/1240089.html
解决方案十:
如果对方网页是HTTP但需要登录后才能查看的,这个怎么实现呀
解决方案十一:
需要登录后才能查看的,你还想抓到,那确实是个问题,你得研究研究baidu的蜘蛛怎么玩的了,常规方法没法解决