如何模拟登陆
string Url = "http://xyq.cbg.163.com/static_file/164/buy_equip_list/equip_list1.html";Stream stream = new WebClient().OpenRead(Url);
str = new StreamReader(stream, Encoding.GetEncoding(charset)).ReadToEnd();
上面是我的代码
当我通过上面代码去获取页面内容时会提示需要登陆,
那我先在页面上在
http://xyq.cbg.163.com/cgi-bin/show_login.py?act=show_login&area_id=1&area_name=%E4%B8%8A%E6%B5%B71%E5%8C%BA&server_id=164&server_name=%E5%A4%A9%E9%A9%AC%E5%B1%B1
这个页面通过验证码匿名登陆再在我的页面运行我的代码,还是说我没有登陆的,这个是怎么验证的呀~!难道 我登陆后Session会在我离开页面时清空?
如果是,我有什么办法模拟登陆对页面的内容做采集吗? --------------------编程问答-------------------- http://www.cnblogs.com/anjou/archive/2008/05/25/1206832.html --------------------编程问答-------------------- 你要实现单点登陆吗?
把他的用户信息通过传参的方式传给你,你解析 --------------------编程问答-------------------- 不是单点登陆,是我想做采集但不知道如何提交状态,采集回来的数据全是登陆提示 --------------------编程问答-------------------- 我先看看版主给的文章 --------------------编程问答-------------------- 当然你也可以用httpwebrequest
原理你要知道,你post登录账户进去,服务器验证通过,返回sessionid作为cookie
以后再访问,你加上它服务器就认为这个请求和之前的验证来自同一个会话,因此是登录过的。 --------------------编程问答-------------------- 哦,谢谢,我用的是.net1.1提示WebClient是密封不能被继承的,那应该怎么办呀 --------------------编程问答-------------------- 用httpwebrequest --------------------编程问答-------------------- 我的理解是不能通过原页面登陆,再用我自己的页面采集啦~!
应该要在我的页面上做个模拟登陆,这样我这里才能得到Session值,然后在采集的时候回传给服务器那边让服务器理解为我已登陆吗? --------------------编程问答--------------------
反正你能不能登录的关键就是那个cookie,你可以用Fiddler这样的抓包工具很容易看到。 --------------------编程问答-------------------- 嗯,谢谢,方法我都清楚了,接下来就是代码了,我慢慢研究一下~!应该问题 不大,再次感谢 --------------------编程问答-------------------- --------------------编程问答--------------------
+1
补充:.NET技术 , C#