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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 5923|回复: 5

[HttpHelper] httpHelper 模拟请求后cookie更新问题或者替换

[复制链接]
发表于 2014-9-23 19:51:51 | 显示全部楼层 |阅读模式
1金钱
假设实现一个带验证码的模拟请求,

1.get 访问 网站 a;
获取到cookie  a1=a1;保存下来,
2.get 访问 验证码
获取到cookie a2=a2; 保存下来,

3.post 提交验证,
在post验证跟踪请求, request cookie  a1=a1;a2=a2;
response set-cookie a2=a3;

4.get 提交主页面, cookie 必须是a1=a1;a2=a3;  才算是验证成功!
现在的httphelper result 每次只可以获取到response 的set-cookie,
现在需要1,2,3所有的cookie, 4才可以验证成功!
有好的解决办法没?

最佳答案

查看完整内容

明白你的意思。其实是JSESSIONID这个的值更新了。 出现新的值,旧的就舍弃不用了。 写个函数处理下就是。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-9-23 19:51:52 | 显示全部楼层
庸亼臫扰]。 发表于 2014-9-23 20:15
膜拜中....! 站长好啊,  对接怎么下手啊, cookie 遍历,更新?  可以给些代码吗? 完全没头绪,
第三 ...

明白你的意思。其实是JSESSIONID这个的值更新了。
出现新的值,旧的就舍弃不用了。
写个函数处理下就是。
回复

使用道具 举报

发表于 2014-9-23 20:09:17 | 显示全部楼层
把cookie对接一下就好了
回复

使用道具 举报

 楼主| 发表于 2014-9-23 20:15:22 | 显示全部楼层
本帖最后由 庸亼臫扰]。 于 2014-9-23 20:30 编辑
站长苏飞 发表于 2014-9-23 20:09
把cookie对接一下就好了

膜拜中....! 站长好啊,  对接怎么下手啊, cookie 遍历,更新?  可以给些代码吗? 完全没头绪,
第三步获取到的cookie
JSESSIONID=mCq7JhhGCm3HKPhLhGytvZZpxfYQ1Vdxv63QL7mrG8d72DvGX9zn!670049526; path=/; HttpOnly

前面的cookie
userName=e0604009028;JSESSIONID=FgQMJhhdQMP4qJjR2DzhGm1X3pJbyTrdpZVT1pTs5nyzpDdspDRh!670049526; path=/; HttpOnly,AD_RS_COOKIE=20080912; expires=Wed, 24-Sep-2014 12:02:05 GMT; path=/;

怎么对接,



                item.Referer = "http://19.16.44.159/login.jsp";
                item.URL = "http://19.16.44.159/j_spring_security_check";
                item.Method = "post";
                item.Cookie = LoginCookie(前面获取到的);
                item.Postdata = "type=1&j_username="+LoginuserName+"&j_password="+LoginpassWord+"&j_validationCode="+code;
                item.Allowautoredirect = true;



                var  result = hl.GetHtml(item);


                var loginCookie = result.Cookie(当前获取到的) + LoginCookie;




                item.Referer = "http://19.16.44.159/";
                item.URL = "http://19.16.44.159/main.action";
                item.Method = "get";
                item.ContentType = "text/html;charset=UTF-8";
                item.Cookie = loginCookie;
                result = hl.GetHtml(item);

                return result.Html;


在线等,好着急
回复

使用道具 举报

 楼主| 发表于 2014-9-23 21:51:12 | 显示全部楼层
cload 发表于 2014-9-23 19:51
明白你的意思。其实是JSESSIONID这个的值更新了。
出现新的值,旧的就舍弃不用了。
写个函数处理下就是 ...

好吧, 只能这样了,
回复

使用道具 举报

发表于 2014-9-23 22:05:33 | 显示全部楼层
cookie是字符串,用+号对接哈哈,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-5-2 06:18

© 2014-2021

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