http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

12
返回列表 发新帖
楼主: livezingy

[求助] 关于HttpHelper获取到的Cookie的疑问

[复制链接]
发表于 2015-8-24 09:14:24 | 显示全部楼层
[quote]livezingy 发表于 2015-8-20 19:10
非常感谢站长的解答!
现在看来,我模拟登录失败的原因应该是验证码图片的问题。
[C#] 纯文本查看 复制代码

 Accept = "*/*",提交的时候去掉这个加上[mw_shl_code=csharp,true]ontentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值 
  试试


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2015-8-24 19:49:56 | 显示全部楼层
站长苏飞 发表于 2015-8-24 09:14
Accept = "*/*",提交的时候去掉这个加上
[C#] 纯文本查看 复制代码
ontentType = "application/x-www-for ...[/quote]

谢谢站长的耐心回复!

请问是这样处理吗:
[mw_shl_code=csharp,true]        private void button1_Click(object sender, EventArgs e)
        {
            item = new HttpItem()
            {
                URL = "http://www.nydus2015.info/login?callback=/loginbbs",
                Method = "POST",
               [color=Red] Accept = "*/*",
                ContentType = "application/x-www-form-urlencoded",[/color]
               // Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*",
                Referer = "http://www.nydus2015.info/login?callback=/loginbbs",
                UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)",
                Postdata = string.Format("username={0}&password={1}&code={2}", txtUser.Text.Trim(), txtPass.Text.Trim(),txtVerCode.Text.Trim()),
               
                
                Cookie = Cookies
            };
            result = http.GetHtml(item);
            retCode = result.Html;
        }


如果我没有误解站长的意思的话,这样也不行。
 楼主| 发表于 2015-8-24 20:08:02 | 显示全部楼层
站长苏飞 发表于 2015-8-24 09:14
Accept = "*/*",提交的时候去掉这个加上[mw_shl_code=csharp,true]ontentType = "application/x-www-for ...


我发现登录页面在第一次加载时,httpWatch抓到的Cookie中有一项内容为referer:
referer        Sent        |   referer=http://forum.nydus.co/forum.php?mod=post&action=newthread&fid=58       

而在填好用户名密码提交的POST数据中,Headers中也包含一个referer:
Referer        http://www.nydus2015.info/login?callback=/loginbbs

我想请教站长的是:
1. 我在组织提交内容的时用的是Headers中的referer,这样是否妥当?
2.无论是HttpHelper,还是WebBrowser,获取的Cookie中都把referer这一项去掉了,为什么呢?

非常感谢站长在百忙之中解答我的问题!

发表于 2015-8-25 08:16:38 | 显示全部楼层
现在提交后提示什么,或者你提供一下抓包数据看看
 楼主| 发表于 2015-8-25 20:41:31 | 显示全部楼层
站长苏飞 发表于 2015-8-25 08:16
现在提交后提示什么,或者你提供一下抓包数据看看

非常感谢站长的回复!

1. 我想用fidder去抓取HttpHelper提交后的数据的,但是我发现我在用我做的这个程序提交时,fidder中没有任何相关内容,只有在持续更新360的相关内容。

2.所以我在提交完成后加了断点,去看HttpHelper中的内容,发现在response中有很多“ObjectDisposedException”相关的错误,如下图所示,不知道站长是否可以根据这个线索给出下一步指示呢?
 楼主| 发表于 2015-8-30 18:58:04 | 显示全部楼层
站长,您好,我学会了用Fiddler抓包,提交后响应头是这样的:
HTTP/1.1 200 OK
Server: nginx/1.4.4
Date: Sun, 30 Aug 2015 10:18:20 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Vary: Accept-Encoding
X-Powered-By: PHP/5.4.23
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: lang=en; expires=Sun, 06-Sep-2015 10:18:20 GMT; path=/
Content-Length: 18496

若是手动登录,Fiddler的TextView一栏会直接显示{"code":"1000","msg":"login ok"};但是用HttpHelpr提交后相应的地方则直接显示登录页面的html文件。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-22 10:42

© 2014-2021

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