HttpWebRequest自动登录网站并获取网站内容(不包含验证码的网站)

news/2024/5/8 22:30:05/文章来源:https://blog.csdn.net/weixin_34245082/article/details/90126171

可以使用 Visual Sniffer(百度搜索) 来捕捉提交的数据信息:
1. 访问你需要站外提交的页面,比如 CSDN 登陆页 http://www.csdn.net/member/UserLogin.aspx
2. 填写好需要的资料,比如用户名和密码,
3. 打开 Visual Sniffer, 点“开始拦截”
4. 在访问的页面中提交。
5. 等提交成功之后,在 Visual Sniffer 中“停止拦截”
6. 在 Visual Sniffer 的左侧栏的加号中依次点开,右边是它拦截到的内容:
ExpandedBlockStart.gif
POST http://www.csdn.net/member/UserLogin.aspx HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://www.csdn.net/member/UserLogin.aspx
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Pragma: no-cache
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)
Host: www.csdn.net
Content-Length: 355
Proxy-Connection: Keep-Alive
Cookie: ASPSESSIONIDAAAATBQC=FMEGGCKDBKHAMMCGKPFDMBFG; ASP.NET_SessionId=lusprmnom05lr445tmteaf55; userid=699879

__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=dDwtMTcwMzgxNjQ2Mjs7bDxDU0ROVXNlckxvZ2luOmNiX1NhdmVTdGF0ZTtDU0ROVXNlckxvZ2luOkltYWdlX0xvZ2luOz4%2Btu1q2wmRZoAJTi9L73w1zBleylY%3D&CSDNUserLogin%3Atb_UserName=testusername&CSDNUserLogin%3Atb_Password=testpassword&CSDNUserLogin%3Atb_ExPwd=9232&from=&CSDNUserLogin%3AImage_Login.x=36&CSDNUserLogin%3AImage_Login.y=6
GET http://www.csdn.net/mycustompage.htm?aspxerrorpath=/member/UserLogin.aspx HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://www.csdn.net/member/UserLogin.aspx
Accept-Language: zh-cn
UA-CPU: x86
Pragma: no-cache
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)
Host: www.csdn.net
Proxy-Connection: Keep-Alive
Cookie: ASPSESSIONIDAAAATBQC=FMEGGCKDBKHAMMCGKPFDMBFG; ASP.NET_SessionId=lusprmnom05lr445tmteaf55; userid=699879
以上为拦截内容,其中提交数据的参数部分(程序中的:strArgs)如:
__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=dDwtMTcwMzgxNjQ2Mjs7bDxDU0ROVXNlckxvZ2luOmNiX1NhdmVTdGF0ZTtDU0ROVXNlckxvZ2luOkltYWdlX0xvZ2luOz4%2Btu1q2wmRZoAJTi9L73w1zBleylY%3D&CSDNUserLogin%3Atb_UserName=testusername&CSDNUserLogin%3Atb_Password=testpassword&CSDNUserLogin%3Atb_ExPwd=9232
ExpandedBlockStart.gif
        protected static string cookieHeader;
        private void Page_Load(object sender, System.EventArgs e)
ExpandedBlockStart.gif        {
            string strReContent = string.Empty;
            //登录
            strReContent = PostLogin("http://www.mystand.com.cn/login/submit.jsp提交的页面","提交的参数:userid=hgj0000&password=06045369","引用地址:http://www.mystand.com.cn/");
            //asp.net登录传递的参数需注意    
            
//strReContent = PostLogin("http://www.mystand.com.cn/login.aspx","__VIEWSTATE=dDwtNjkzMjUyNDczO3Q8O2w8aTwzPjs%2BO2w8dDxwPHA8bDxUZXh0Oz47bDxcZTs%2BPjs%2BOzs%2BOz4%2BOz6aX2dtqkJTK%2BKbNPsjd7Op%2Fl26Iw%3D%3D&txtUserName=hxf&txtPassword=hxf0000&btnEnter=%E7%99%BB%E5%BD%95","http://www.mystand.com.cn/login.aspx");
            
//获取页面
            strReContent = GetPage("http://www.mystand.com.cn/company/getdata.jsp?code=","引用地址:http://www.mystand.com.cn/");
            //strReContent = GetPage("http://www.mystand.com.cn/Modules/index.aspx","http://www.mystand.com.cn/login.aspx");
            
//可以对获得的内容进行处理:strReContent
        }

ExpandedBlockStart.gif        /// <summary>
        
/// 功能描述:模拟登录页面,提交登录数据进行登录,并记录Header中的cookie
        
/// </summary>
        
/// <param name="strURL">登录数据提交的页面地址</param>
        
/// <param name="strArgs">用户登录数据</param>
        
/// <param name="strReferer">引用地址</param>
        
/// <returns>可以返回页面内容或不返回</returns>
        public static string PostLogin(string strURL,string strArgs,string strReferer)
ExpandedBlockStart.gif        {
            string strResult = "";
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(strURL);
            myHttpWebRequest.AllowAutoRedirect = true
            myHttpWebRequest.KeepAlive = true;
            myHttpWebRequest.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*";
            myHttpWebRequest.Referer = strReferer;
            
            myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 2.0.50727)";
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
            myHttpWebRequest.Method = "POST";

            CookieCollection myCookies = null;
            CookieContainer myCookieContainer = new CookieContainer();
            myHttpWebRequest.CookieContainer = myCookieContainer;

            Stream MyRequestStrearm = myHttpWebRequest.GetRequestStream();
            StreamWriter MyStreamWriter = new StreamWriter(MyRequestStrearm,Encoding.ASCII);
            //把数据写入HttpWebRequest的Request流
            MyStreamWriter.Write(strArgs);
            //关闭打开对象 
            MyStreamWriter.Close();
            MyRequestStrearm.Close();

            HttpWebResponse response = null;
            System.IO.StreamReader sr = null;
            response = (HttpWebResponse)myHttpWebRequest.GetResponse();

            cookieHeader = myHttpWebRequest.CookieContainer.GetCookieHeader(new Uri(strURL)); 
            HttpContext.Current.Application.Lock(); 
            HttpContext.Current.Application["cookieHeader"] = cookieHeader; 
            HttpContext.Current.Application.UnLock();
            myCookies = response.Cookies;

            sr = new System.IO.StreamReader(response.GetResponseStream(),Encoding.GetEncoding("gb2312"));    //    //utf-8
            strResult = sr.ReadToEnd();
            return strResult;
        }

ExpandedBlockStart.gif        /// <summary>
        
/// 功能描述:在PostLogin成功登录后记录下Headers中的cookie,然后获取此网站上其他页面的内容
        
/// </summary>
        
/// <param name="strURL">获取网站的某页面的地址</param>
        
/// <param name="strReferer">引用的地址</param>
        
/// <returns>返回页面内容</returns>
        public static string GetPage(string strURL,string strReferer)
ExpandedBlockStart.gif        {
            string strResult = "";
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(strURL);
            myHttpWebRequest.ContentType = "text/html";
            myHttpWebRequest.Method = "GET";
            myHttpWebRequest.Referer = strReferer;
            myHttpWebRequest.Headers.Add("cookie:"+ cookieHeader);

            HttpWebResponse response = null;
            System.IO.StreamReader sr = null;
            response = (HttpWebResponse)myHttpWebRequest.GetResponse();
            sr = new System.IO.StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));    //    //utf-8
            strResult = sr.ReadToEnd();
            return strResult;
        }



本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/articles/1532591.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_742450.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Ajax]十个优秀的 Ajax/Javascript实例网站

原始地址&#xff1a;http://supercode.appspot.com/post/13 1.Ajax Rain AjaxRain有很多完美整合AJAX, CSS, DHTML 或 Javascript的实例&#xff0c;有一些Demo的确值得你去看一看&#xff0c;即使你不是网页设计(开发)师。 2.Ajax Daddy Ajax Daddy收集了大量漂亮的Web2.0工…

初识Visual Studio 2010(四)—— 创建ASP.NET网站

启动VS后&#xff0c;创建一个ASP.NET网站&#xff0c;注意是ASP.NET Web Site不是ASP.NET MVC2 Web Application&#xff0c;从下图可以看到Solution Explorer中的Project的目录结构有比较大的变化&#xff1a; 1&#xff09;实现了用户登录、注册和修改密码的功能 2&#xff…

域名更换 html,网站更换域名跳转单页

#样式&#xff1a;*.使用方法&#xff1a;新建一个index.html文件.把以下代码复制进去.然后把第22和43行的域名改成你需要跳转的即可&#xff01;网站域名更换通知 - 饼干网secs饼干网络跳转至双虹云代挂立即前往 secure安全加密 function alertSet(e) {document.getElementByI…

网站所需服务器,单位网站所需服务器

单位网站所需服务器 内容精选换一换简要介绍Web Bench是Linux中被广泛使用的网站压力测试工具&#xff0c;同时支持HTTPS静态网站和动态网站。编写语言&#xff1a;C/C一句话概述&#xff1a;网站压力测试工具建议的版本建议使用版本为1.5。云服务器要求本文以云服务器KC1实例测…

一个有意思的网站 markup点io

为什么80%的码农都做不了架构师&#xff1f;>>> 遇到一个有意思的网站(浏览器plugin)&#xff0c;不知道怎么做的&#xff0c;也不知道是否已经广为人知。有时间研究研究开发中文版的可行性。 抓了几张图片&#xff0c;可是不知道怎么加入博客&#xff0c;没办法只…

用confluence完成室项目管理网站的初步搭建

一、安装sql server 安装sql server 2005 及sp2补丁  将sql server的服务端口从1433改为2433  安装confluence的数据库及用户&#xff0c;数据库名称为confluence&#xff0c;数据库文件放在d:\conf-db目录中  建立用户conf&#xff0c;给予confluence数据库的所有权限&a…

夫唯seowhy调研室全站vip课程

夫唯seowhy论坛是国内最好的seo教学论坛&#xff0c;学员更是超过了十多万人&#xff0c;为社会提供了很多seo方面的人才&#xff0c;那么他的成功秘诀在哪里呢&#xff0c;他教的都是些什么课程呢&#xff0c;想知道吗&#xff0c;不用注册会员&#xff0c;seowhy论坛全站vip教…

pb程序怎么发布到iis_怎么将本地做好的网站部署到服务器上?

例如自己自在本地开发好了一个web网站&#xff0c;如何部署到云服务器上&#xff0c;让别人访问&#xff1f;请大神指教网站如果在本地已经配置好后&#xff0c;需要发布到服务器里的话&#xff0c;具体要怎么做呢&#xff01;首先在本地配置的话&#xff0c;只需要配置ip地址就…

Github网站加载不全,css读取失败

最近在公司里访问Github网站的时候&#xff0c;可能会遇到网站响应超时&#xff0c;图片加载不出&#xff0c;排版错误等情况&#xff08;大部分情况下是可以正常打开的&#xff09;。我就遇到了这样的问题&#xff0c;所以在此和大家分享&#xff0c;希望可以帮到有同样困扰的…

京东前端:PhantomJS 和NodeJS在网站前端监控平台的最佳实践

http://www.infoq.com/cn/articles/practise-of-phantomjs-and-nodejs-in-jingdong 1. 为什么需要一个前端监控系统 通常在一个大型的 Web 项目中有很多监控系统&#xff0c;比如后端的服务 API 监控&#xff0c;接口存活、调用、延迟等监控&#xff0c;这些一般都用来监控后台…

FLASH PLAYER 谷歌浏览器浏览网站无法正常显示的问题

大家使用谷歌浏览器访问网站时&#xff0c;有没有遇到如下情况&#xff1a; 谷歌浏览器通知你需要安装Adobe Flash Player&#xff0c;即使你按照提示安装了Adobe Flash Player&#xff0c;关闭浏览器重新 访问含有Adobe Flash Player的页面是&#xff0c;页面还会提示&#x…

艾格官方网站

2019独角兽企业重金招聘Python工程师标准>>> 艾格官方网站ETAM( http://www.kguowai.com/html/195.html)是著名女装品牌&#xff0c;源于1916年的德国&#xff0c;到1928年&#xff0c;连锁店网络发展到了巴黎&#xff0c;并以此为基地&#xff0c;逐步成为法国乃至…

NVMe Driver 需要装吗_不访问非法网站,不装乱七八糟的软件,还需要装杀毒软件吗?...

有些朋友会说&#xff1a;装杀毒软件会拖慢电脑速度&#xff0c;甚至还有广告弹窗&#xff0c;我使用电脑的习惯很好&#xff0c;平时不访问乱七八糟的网站&#xff0c;也不装什么七七八八的软件&#xff0c;我根本不需要装杀毒软件。是这样吗&#xff1f;很多人认为&#xff0…

Google的全新在线地图API演示网站 - More than a map

日期&#xff1a;2012-10-28 来源&#xff1a;GBin1.com More Than A Map是Google最新上线的Google地图API使用的演示网站&#xff0c;提供了丰富的Google Maps API的使用。 包括一下几个方面的功能展示&#xff1a; 基础功能卫星功能街景功能地点功能路线功能数据可视化功能相…

h5 img 图片显示不全_浅谈H5建站有哪些优势

移动互联网时代&#xff0c;基于 H5响应式网站的快速发展是当今时代的大势所趋&#xff0c;它可以帮助企业覆盖整个网络&#xff0c;同时提高转化率的营销和品牌形象。许多企业网站纷纷采用H5响应式技术建设网站&#xff0c;下面我们来分析 H5建站有什么优势。自适应传统网站无…

域名“江苏盱眙”Jsxuyi.com淘域抢注 可做地方网站

为什么80%的码农都做不了架构师&#xff1f;>>> 淘域网&#xff08;B08.com&#xff09;6月8日消息&#xff0c;.com域名Jsxuyi.com于昨日在域名预定平台抢注成功&#xff0c;目前该域名已进入为期三天的域名竞价期。域名Jsxuyi.com可音译为“江苏盱眙”&#xff0…

解决12306.cn网站验证码获取提示“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系“的问题...

https://dynamic.12306.cn/otsweb/passCodeAction.do?randsjrand&0.8967564508222368 这是图片的访问网址 大家看清楚了&#xff0c;是Https的网站&#xff0c;也就是说是需要证书才能访问了&#xff0c;这个只要获取证书就行了&#xff0c;方法如下 先直接在浏览器输入这…

TypeWonder – 在任何网站上实时预览字体效果

TypeWonder 让网页字体的选择过程变得轻松愉快。它可以帮助您在任何网站上快速测试 Web 字体效果&#xff01;输入网站网址&#xff0c;就能够即时预览的字体的实际效果&#xff0c;还可以从数百种字体中进行挑选&#xff0c;您还可以得到所需字体的代码&#xff0c;可以很方便…

.net网站开发(一):1.input表单元素

其实&#xff0c;在半年前我对网站开发还是完全不感冒的&#xff0c;不是没认识&#xff0c;而是只认识到表面。我以为网站模型就那几样&#xff0c;新闻、论坛、博客啥的&#xff0c;仿个站出来有什么意思&#xff1f;但现在我是知道了&#xff0c;大多应用开发还是采用B/S架构…

ABUSE建了个恶意网站数据库

2019独角兽企业重金招聘Python工程师标准>>> 数据库已经按不同类型标记了各种恶意网站&#xff0c;例如它们当前是否在线&#xff0c;恶意内容类型&#xff0c;潜在威胁信息等。安全软件开发人员和浏览器开发人员可以免费使用此数据库来帮助用户拦截可能存在威胁的恶…