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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 10143|回复: 10

[其他] 带验证码登陆

[复制链接]
发表于 2013-9-16 21:13:33 | 显示全部楼层 |阅读模式
已解决参考帖子:http://www.sufeinet.com/thread-5199-1-1.html

带验证码登陆不成功,一直返回“本次请求并未返回任何数据”
我的代码如下
下面是获取验证码的代码
[code=csharp]
            string code_cookie;
             HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.888funcity.com/fcity/login.php?language=simplified&referral=",//URL     必需项   
                //URL = "http://g818city.com/appg/draw_gd.php",
                Method = "get",//URL     可选项 默认为Get   
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写   
                Cookie = "",//字符串Cookie     可选项   
                Referer = "",//来源URL     可选项   
                Postdata = "",//Post数据     可选项GET时不需要写   
                Timeout = 100000,//连接超时时间     可选项默认为100000   
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000   
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值   
                ContentType = "text/html",//返回类型    可选项有默认值   
                Allowautoredirect = false,//是否根据301跳转     可选项   
            };
            HttpResult result = http.GetHtml(item);
            item.Cookie = result.Cookie;
            code_cookie = result.Cookie;
            item.URL = "http://www.888funcity.com/fcity/draw_gd.php";
            item.Accept = "image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5";
            item.Encoding = null;
            item.ResultType = ResultType.Byte;
            result = http.GetHtml(item);
            pictureBox1.Image = byteArrayToImage(result.ResultByte);[/code]
下面是登陆的代码:
  1.   private void button7_Click(object sender, EventArgs e)
  2.         {
  3.             HttpHelper http = new HttpHelper();
  4.             string fr_gdcode = textBox1.Text.Trim();
  5.             HttpItem item = new HttpItem()
  6.             {
  7.                 URL = "http://www.888funcity.com/fcity/login.php",//URL     必需项   
  8.                 Method = "post",//URL     可选项 默认为Get      
  9.                 Referer = "http://www.888funcity.com/fcity/login.php",//来源URL     可选项   
  10.                 Postdata = "fr_username=feifei2014&fr_password=ff123456&fr_gdcode="+fr_gdcode+"&language=simplified&fr_language=simplified&fr_companycode=a2700&fr_querycheck=http%3A%2F%2Fwww.888funcity.com%2Ffcity%2Flogin.php%3Flanguage%3Dsimplified%26referral%3D",//Post数据     可选项GET时不需要写   
  11.                 UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值   
  12.                 ContentType = "application/x-www-form-urlencoded",//返回类型    可选项有默认值   
  13.             };
  14.             
  15.             code_cookie = code_cookie.Replace("path=/,", "").Replace("path=/", "");
  16.             item.Cookie = code_cookie;
  17.             HttpResult result = http.GetHtml(item);

  18.             item.URL = "http://www.888funcity.com/fcity/system.php";
  19.             item.Cookie = result.Cookie;
  20.             result = http.GetHtml(item);
  21.             string  html = result.Html;

  22.             StreamWriter sw = new StreamWriter("data.txt", true, Encoding.GetEncoding("gb2312"));
  23.             sw.WriteLine(html);
  24.             sw.Close();
  25.             MessageBox.Show("完成!");
  26.         }
复制代码


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-9-17 05:24:54 | 显示全部楼层
你post的时候貌似没带cookie啊
 楼主| 发表于 2013-9-17 06:34:06 来自移动端 | 显示全部楼层
fnz1988 发表于 2013-9-17 05:24
你post的时候貌似没带cookie啊

带了啊,保存在 code_cookie里面了
发表于 2013-9-17 08:11:32 | 显示全部楼层
你直接使用图片页面的Cookie就行了吧,
或者你提供下抓到登录成功的包,我看看
发表于 2013-9-17 10:42:25 | 显示全部楼层
站长苏飞 发表于 2013-9-17 08:11
你直接使用图片页面的Cookie就行了吧,
或者你提供下抓到登录成功的包,我看看

也可以调用api把图片在网页获取,然后识别,这些就不用考虑生成图片请求的cookies问题了
 楼主| 发表于 2013-9-17 12:27:26 | 显示全部楼层
站长苏飞 发表于 2013-9-17 08:11
你直接使用图片页面的Cookie就行了吧,
或者你提供下抓到登录成功的包,我看看

换了还是不行,我附上我的源码,站长帮忙看看,谢谢啦
下面是抓包的数据
参数application/x-www-form-urlencoded
fr_companycodea2700
fr_gdcode2566
fr_languagesimplified
fr_passwordqwe
fr_querycheckhttp://888funcity.com/fcity/login.php?language=simplified&referral=
fr_usernameff2010
languagesimplified
源代码
fr_username=ff2010&fr_password=qwe&fr_gdcode=2566&language=simplified&fr_language=
simplified&fr_companycode=a2700&fr_querycheck=
http%3A%2F%2F888funcity.com%2Ffcity%2Flogin.php%3Flanguage%3Dsimplified%26referral%3D

响应头信息
Cache-Controlno-cache, no-store, no-cache="Set-Cookie"
ConnectionKeep-Alive
Content-Encodinggzip
Content-Length20
Content-Typetext/html; charset=gb2312
DateTue, 17 Sep 2013 04:21:27 GMT
ExpiresThu, 19 Nov 1981 08:52:00 GMT
Keep-Alivetimeout=5, max=100
Location?language=simplified&error_code=19
Pragmano-cache
ServerApache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 PHP/5.2.13
Set-CookieNSC_10.66.1.227=440b37343660;expires=Tue, 17-Sep-13 05:01:00 GMT;path=/
VaryAccept-Encoding
X-Powered-ByPHP/5.2.13
请求头信息原始头信息
Accepttext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encodinggzip, deflate
Accept-Languagezh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Connectionkeep-alive
CookieNSC_10.66.1.227=440b37343660; PHPSESSID=4cc8781f4a5aa55eb30276df41bf3443;
cookie_user_language=simplified
Host888funcity.com
Refererhttp://888funcity.com/fcity/login.php?language=simplified&referral=
User-AgentMozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0


ylc.rar

276.84 KB, 下载次数: 277, 下载积分: 金钱 -1

发表于 2013-9-17 13:19:46 | 显示全部楼层
对不起, 用户帐号或者密码不对

账户密码都不对怎么测试啊,你代码里的账户密码不对
发表于 2013-9-17 13:24:07 | 显示全部楼层
再说明一下,我不是在程序里用的,是直接打开浏览器登录就提示密码不对
 楼主| 发表于 2013-9-17 14:36:33 | 显示全部楼层
站长苏飞 发表于 2013-9-17 13:19
对不起, 用户帐号或者密码不对

账户密码都不对怎么测试啊,你代码里的账户密码不对

这个网站登录五次错误账号就登录不了了,我新注册了账号 feifei2008,密码 ff123456
 楼主| 发表于 2013-9-17 14:44:39 | 显示全部楼层
wxfy2011 发表于 2013-9-17 14:36
这个网站登录五次错误账号就登录不了了,我新注册了账号 feifei2008,密码 ff123456

这个登录又不行了,等下我再看看
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-23 06:30

© 2014-2021

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