ASP.NET使用webrequset抓取需要登陆以及验证码才能访问的页面

王尼瑪 2012-04-23 03:41:19
功能说明:抓取需要登陆、并且验证码才能访问的页面,难点在于模仿登陆和验证码
在度娘的帮助下,找了很多的代码,但是,没有一个可以用的。
大概步骤是这样子的,使用HttpWatch抓包,看看登陆的时候post的数据,然后使用代码模拟,但是,我不知道如何获取登陆后的Cookie和抓取的时候也把这个Cookie捎上,而且,另外一个技术点是验证码。

有做过这方面的牛人请教下!谢谢!!

   
public void Login(string UserName, string UserPwd, string LoginUrl, out string Txt)
{
try
{
//定义Cookie容器
CookieContainer CookieArray = new CookieContainer();
//创建Http请求
HttpWebRequest LoginHttpWebRequest = (HttpWebRequest)WebRequest.Create(LoginUrl);
//登录数据
string LoginData = string.Format("email={0}&password={1}&operate={2", UserName, UserPwd, "login");
//数据被传输类型
LoginHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
//数据长度
LoginHttpWebRequest.ContentLength = LoginData.Length;
//数据传输方法 get或post
LoginHttpWebRequest.Method = "POST";
//设置HttpWebRequest的CookieContainer为刚才建立的那个CookieArray
LoginHttpWebRequest.CookieContainer = CookieArray;
//获取登录数据流
Stream myRequestStream = LoginHttpWebRequest.GetRequestStream();
//StreamWriter
StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.Default);
//把数据写入HttpWebRequest的Request流
myStreamWriter.Write(LoginData);
//关闭打开对象
myStreamWriter.Close();
myRequestStream.Close();
//新建一个HttpWebResponse
HttpWebResponse myHttpWebResponse = (HttpWebResponse)LoginHttpWebRequest.GetResponse();
//获取一个包含url的Cookie集合的CookieCollection
myHttpWebResponse.Cookies = CookieArray.GetCookies(LoginHttpWebRequest.RequestUri);
WebHeaderCollection a = myHttpWebResponse.Headers;
Stream myResponseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.Default);
Txt = myStreamReader.ReadToEnd();
//把数据从HttpWebResponse的Response流中读出
myStreamReader.Close();
myResponseStream.Close();
}
catch (Exception ex)
{
throw ex;
}
}
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
王尼瑪 2012-04-24
  • 打赏
  • 举报
回复
还是没人懂??
王尼瑪 2012-04-23
  • 打赏
  • 举报
回复
没人懂吗??
ASP.NET开发典型模块大全(修订版)》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术,全面地介绍了如何使用asp.net进行各领域的web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,内容涉及论坛、博客、播客、网络硬盘、电子邮件、在线考试、网站备忘录、在线短消息、网站访问量统计与分析、系统后台管理权限分配等网站关键模块;第2篇常见模块篇,覆盖网站开发的各个领域,内容涉及网站会员注册及登录、会员密码找回、留言本、上传与下载、图片资源管理、搜索引擎、网上问卷调查、rss在线订阅、聊天室、购物车、在线银行支付、手机短消息管理、在线音乐、投票系统、万能打印、数据自动备份与恢复等常见模块;第3篇热点技术应用篇,解决网站开发在某个领域遇到的技术难题,内容涉及linq数据访问技术、安全技术、服务技术、ajax、高级应用技术等。 《ASP.NET开发典型模块大全(修订版)》附有配套光盘。光盘提供了书中所有案例的全部源代码,并经过精心调试,在windows xp和windows 2000下全部通过,保证能够正常运行。此外,光盘中还提供有编程词典试用版软件。 《ASP.NET开发典型模块大全(修订版)》案例涉及领域广泛,实用性非常强。学习本书读者可以了解各个领域的特点,能够针对某一行业进行软件开发,也可以通过光盘中提供的模块源代码进行二次开发,以减少开发系统所需要的时间。本书适合各级软件开发人员学习使用,也可供大、中专院校师生学习参考。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧