苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 4003|回复: 4

[其他] C# 验证码和登陆同步的问题

[复制链接]
发表于 2013-7-3 13:51:49 | 显示全部楼层 |阅读模式
本帖最后由 zhwq107 于 2013-7-3 14:07 编辑

不知道是我自己操作有误还是有关腾讯的东东登陆起码都是这么麻烦?自己实在解决不掉,希望大家能来帮助了。问题:获取到验证码以及拿到cookies,传给登陆的post中,始终返回的是失败。网站:chuangshi.qq.com
上代码先。
验证码图片的获取,返回的cookie保存在cookies中。
  1.         private void GetCode()
  2.         {
  3.             HttpItem item = new HttpItem()
  4.             {
  5.                 URL = "http://chuangshi.qq.com/read/Public/poploginverify/1372753833331",
  6.                 Referer = "http://chuangshi.qq.com/read/public/popuplogin.html",
  7.                 Accept = "image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5",
  8.                 ResultType = ResultType.Byte
  9.             };
  10.             HttpHelper helper = new HttpHelper();
  11.             HttpResult result = helper.GetHtml(item);
  12.             cookies = result.Cookie;
  13.             picCode.Image = byteArrayToImage(result.ResultByte);
  14.         }
复制代码
分别POST用户名密码以及验证码,读取cookies为cookie,输出返回结果到文本框。
  1.             HttpItem item = new HttpItem()
  2.             {
  3.                 URL = "http://chuangshi.qq.com/read/public/loginajax.html",
  4.                 Method = "post",
  5.                 Postdata = "username=" + txtUsername.Text + "&password=" + txtPassword.Text + "&autologin=false&verify=" + txtCode.Text,
  6.                 Cookie = cookies,
  7.                 Referer = "http://chuangshi.qq.com/read/public/popuplogin.html",
  8.                 Accept = "application/json, text/javascript, */*; q=0.01",
  9.                 ContentType = "application/x-www-form-urlencoded; charset=UTF-8",
  10.             };
  11.             item.Header.Add("X-Requested-With", "XMLHttpRequest");
  12.             HttpHelper helper = new HttpHelper();
  13.             HttpResult result = helper.GetHtml(item);
  14.             txtShow.Text = result.Html;
  15.             txtShow.AppendText(cookies);
复制代码
如此操作后,返回总是登陆失败,碰到瓶颈了,求大家帮忙了。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-8-6 09:43:13 | 显示全部楼层
没怎么仔细试你的代码,但我先前的方法(不知道是不是笨办法)是把取得的cookie用session存起来,然后再传给post,否则可能因为访问登录页面时会再次刷新验证码而使取得的cookie失效。不知道是不是这样
发表于 2013-8-12 14:27:55 | 显示全部楼层
你一次请求验证码,再一次请求登录,验证码不一样了啊。
 楼主| 发表于 2013-8-14 08:38:13 | 显示全部楼层
qq576733600 发表于 2013-8-12 14:27
你一次请求验证码,再一次请求登录,验证码不一样了啊。

我把验证码的cookie传过去了。
发表于 2013-8-29 11:42:07 | 显示全部楼层
不用请求那个登录页面的?
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-27 20:35

© 2014-2021

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