苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 3699|回复: 4

[其他] 关于httpHelper类的cookies问题...

[复制链接]
发表于 2013-7-22 16:43:55 | 显示全部楼层 |阅读模式
本帖最后由 Cinwell 于 2013-7-22 16:46 编辑

啊我也是自己瞎折腾想弄一个qq聊天机器人, 现在还停留在登陆阶段. 研究了下webqq协议, 据说要两次登陆, 第二次要用post, 然后我这样写的...
  1. if (loginResult.IndexOf("成功")>0)
  2.             {
  3.                 //提取关键数据
  4.                 ptwebqq = GetString.getStr(httpResult.Cookie, "ptwebqq=", ";");
  5.                 skey = GetString.getStr(httpResult.Cookie, "skey=", ";");

  6.                 //获取登陆后参数
  7.                 string login2Url = "http://d.web2.qq.com/channel/login2";
  8.                 string postData = String.Format("r=%7B%22status%22%3A%22online%22%2C%22ptwebqq%22%3A%22{0}%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid%22%3A%22{1}%22%2C%22psessionid%22%3Anull%7D&clientid={2}&psessionid=null", ptwebqq, clientid, clientid);
  9.                 Item = new HttpItem()
  10.                 {
  11.                     URL = login2Url,
  12.                     Method = "Post",
  13.                     Postdata = postData,
  14.                     Timeout = 1000,
  15.                     //啊我不知道用哪个, 用哪个都提示我 内部服务器错误 估计就是cookies传入的问题吧... 然后我该怎么办怎么办...
  16.                     CookieCollection = httpResult.CookieCollection,
  17.                     Cookie = httpResult.Cookie,
  18.                 };
  19.                 httpResult = http.GetHtml(Item);
  20.                 string login2Result = httpResult.Html;
  21.                 MessageBox.Show(login2Result);
  22.                 MessageBox.Show(httpResult.Cookie);
  23.             }
复制代码
是这样用的么...
啊就是提示我 内部服务器错误 ...我也不知道怎么解释... 我是边学边做的... 源文件一起发上来了... 希望大师帮忙看一下下... 第一次来发帖好紧张...

QSecretary.zip

100.65 KB, 下载次数: 205, 下载积分: 金钱 -1

代码代码代码



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-7-22 19:02:57 | 显示全部楼层
clientid 这个参数是取7或者8位的随机数,提交第二次POST包的时候把Referer填上试试
 楼主| 发表于 2013-7-22 22:13:40 | 显示全部楼层
xx732395 发表于 2013-7-22 19:02
clientid 这个参数是取7或者8位的随机数,提交第二次POST包的时候把Referer填上试试
  1.         String clientid = new Random().Next(100000000) + "";
复制代码
貌似就是随机8位数嘛....
  1. Referer: http://d.web2.qq.com/proxy.html?v=20110331002&callback=1&id=3
复制代码
是这个么... 加了也没用....
发表于 2013-7-24 08:41:44 | 显示全部楼层
Cinwell 发表于 2013-7-22 22:13
貌似就是随机8位数嘛....是这个么... 加了也没用....

你调试看了吗?你的Cookie确定有值,

 楼主| 发表于 2013-7-29 14:00:18 | 显示全部楼层
站长苏飞 发表于 2013-7-24 08:41
你调试看了吗?你的Cookie确定有值,

调试了cookies有值, 我用其他能用的类似程序调试, 发现里面的cookies和这个用这个类返回的cookies的值不一样
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-27 04:44

© 2014-2021

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