苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

楼主: jiaoxiake

[其他] httphelper类登陆功能

[复制链接]
 楼主| 发表于 2013-10-10 11:22:55 | 显示全部楼层
站长苏飞 发表于 2013-10-10 11:09
不是第一次,而是登录成功后的Cookie,不管用说明你没有登录成功
还是登录页面的Cookie说明你没有登录成功 ...

抓取验证码没问题 下面是我第一次post数据到登录页面代码 第二次post数据代码只是将登录页面url换成成功后跳转url  其中的变量postData = "lt=LT-2616256-LvfAxYVlUiY2UMfaYTlBysXadJtfc9&execution=e2s1&_eventId=submit&username=28830666%40sogou.com&password=asdf66JMZX&validateCode=" + code;  code就是我抓下来的验证码


ArrayList list = new ArrayList();
            HttpWebRequest request;
            HttpWebResponse response;
            ASCIIEncoding encoding = new ASCIIEncoding();
            request = WebRequest.Create(postUrl) as HttpWebRequest;
            byte[] b = encoding.GetBytes(postData);
            request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0";
            request.Method = "POST";
            request.CookieContainer = cookie;
            request.ContentLength = b.Length;
            using (Stream stream = request.GetRequestStream())
            {
                stream.Write(b, 0, b.Length);
            }
            try
            {
                //获取服务器返回的资源   
                using (response = request.GetResponse() as HttpWebResponse)
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        if (response.Cookies.Count > 0)
                            //cookie.Add(response.Cookies);
                        list.Add(cookie);
                        list.Add(reader.ReadToEnd());
                    }
                }
            }


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2013-10-10 11:29:51 | 显示全部楼层
下面是手动登录成功后抓取到的请求头信息  这个cookie和第一次get登录页面得到的cookie不太一样
Host        xuri.p4p.sogou.com
User-Agent        Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0
Accept        text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language        zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding        gzip, deflate
Referer        http://xuri.p4p.sogou.com//jsp/w ... iLOC19PfJUL-eunomia
Cookie        xuri_sid=22f4cb86-e411-4bbb-82fa-4935f7ebca5e; JSESSIONID=abcoee7NTPEk_66eVzGgu
Connection        keep-alive
发表于 2013-10-10 11:32:16 | 显示全部楼层
你没用我的Httphelper啊,那你得自己写了,提供个抓包信息
 楼主| 发表于 2013-10-10 11:48:09 | 显示全部楼层
不是只要给HttpWebRequest 变量赋抓包的请求头信息参数值就行了吗  你那个也是把HttpWebRequest 给包装了一下对吧 所有的流程就是给HttpWebRequest 赋值然后发消息给网页 对吧 我就是把手动登录后抓的参数赋给HttpWebRequest  cookie用的是第一次get时的cookie这样有问题吗
 楼主| 发表于 2013-10-10 11:49:55 | 显示全部楼层
还有postData除了用户名 密码 验证码 其他是不是都是不变写死的
发表于 2013-10-10 11:55:25 | 显示全部楼层
我看你没有了解清楚流程和原理,参考会不会变化只有看了才知道,这个谁也不敢确定,还有提交的方法也不一定相同,你的代码太简单了,肯定不有使用我的类方便,

好些参数你都没有配置,所以我说让你提供下抓包信息我好给你对比下
 楼主| 发表于 2013-10-10 12:00:34 | 显示全部楼层
抓包的信息除了头信息还有哪些可以写到参数里的  还有登录时必须要哪些参数  我只是把头信息的请求信息写到HttpWebRequest 里了
发表于 2013-10-10 12:16:08 | 显示全部楼层
ContentType 需要写进去,
你回复我时单击我下方的回复,不然你是在回复你自己,我收不到提示
 楼主| 发表于 2013-10-10 14:51:01 | 显示全部楼层
站长苏飞 发表于 2013-10-10 12:16
ContentType 需要写进去,
你回复我时单击我下方的回复,不然你是在回复你自己,我收不到提示

下面是我抓包的数据  我怎么看哪些参数是必须的  哪些参数不是必须的  还有哪些参数是活的  哪些参数是死的
file:///C:/Program%20Files/Tencent/QQ/Users/879721893/Image/RBDD2ZPMZWUV(IHKU$HG0ZY.jpg
发表于 2013-10-10 14:52:02 | 显示全部楼层
图片看不到,最好是全部都写,用我的Httphelper有好多是处理过的,比较方便 。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2025-1-9 01:10

© 2014-2021

快速回复 返回顶部 返回列表