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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 6395|回复: 5

[其他] 百度文库评分的问题

[复制链接]
发表于 2013-4-24 16:19:34 | 显示全部楼层 |阅读模式
  您好,通过C#HttpHelper类可以成功登录百度文库,并得到财富值,可是进行评分post时,总是显示操作超时,希望您在闲暇时可以帮忙解决一下。问题在最后一个post的地方。
var item = new HttpItem
            {
                Url = "https://passport.baidu.com/v2/?login&u=http://wenku.baidu.com/room?fr=room",//URL     必需项
                Encoding = "",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                Method = "get",//URL     可选项 默认为Get
                //Cookie = cookie//当前登录Cookie
                Timeout = 6000
            };
            var result = _http.GetHtml(item);
            var cookie = result.Cookie;
            richTextBox1.Text += cookie + "\n\n";
            item = new HttpItem
            {
                Url = "https://passport.baidu.com/v2/api/?getapi&tpl=pp&apiver=v3&class=login",//URL     必需项
                Encoding = "",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                Method = "get",//URL     可选项 默认为Get
                Cookie = cookie,//当前登录Cookie
                Timeout = 6000
            };
            //得到HTML代码
            result = _http.GetHtml(item);
            var token = GetPattern("(?<=token\" : \")[^\"]+", result.Html);
            richTextBox1.Text += token + "\n";
            item = new HttpItem
               {
                   Url = "https://passport.baidu.com/v2/api/?login", //URL     必需项
                   Encoding = "gbk", //编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                   Method = "Post", //URL     可选项 默认为Get
                   ContentType = "application/x-www-form-urlencoded", //返回类型    可选项有默认值
                   //Post数据 使用URLEncode是为了解决中文用户名或者密码的问题    可选项GET时不需要写
                   Postdata = "staticpage=https%3A%2F%2Fpassport.baidu.com%2Fv3Jump.html&charset=utf-8&token="+token+"&tpl=pp&apiver=v3&codestring=&isPhone=false&safeflg=0&u=http%3A%2F%2Fwenku.baidu.com%2Froom%3Ffr%3Droom&username=你的账号&password=你的密码&verifycode=&callback=parent.bd__pcbs__kj4hu6",
                   Timeout = 6000,
                   Cookie = cookie,//当前登录Cookie
               };
            result = _http.GetHtml(item);   //可以登录成功
            cookie = result.Cookie;
            richTextBox1.Text += cookie+ "\n\n";
            item = new HttpItem
            {
                Url = "http://wenku.baidu.com/user/index",//URL     必需项
                Encoding = "",//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                Method = "get",//URL     可选项 默认为Get
                Cookie = cookie,//当前登录Cookie
                Timeout = 6000
            };
            //得到HTML代码
            result = _http.GetHtml(item);
            var wealth = GetPattern("(?<=wealth' : \")[^\"]+", result.Html);
            richTextBox1.Text += wealth + "\n";   //可以成功得到财富值
            item = new HttpItem
            {
                Url = "http://wenku.baidu.com/doc/submit/value", //URL     必需项
                Encoding = "", //编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                Method = "Post", //URL     可选项 默认为Get
                ContentType = "application/x-www-form-urlencoded", //返回类型    可选项有默认值
                Postdata = "ct=20009&doc_id=e7e95bfb700abb68a982fbf6&value_score=4",
                Timeout = 6000,
                Referer = "http://wenku.baidu.com/view/e7e95bfb700abb68a982fbf6.html",
                Allowautoredirect = true,
                Cookie = cookie,//当前登录Cookie
            };
            result = _http.GetHtml(item);
            richTextBox1.Text += result.Html+"\n\n\n";  //此处发生错误,总是显示操作超时,难道是cookie的问题吗?


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-4-24 16:26:34 | 显示全部楼层
最后一步使用Url = "http://wenku.baidu.com/user/index",//URL   这里面的Cookie试试
 楼主| 发表于 2013-4-24 16:43:53 | 显示全部楼层
站长苏飞 发表于 2013-4-24 16:26
最后一步使用Url = "http://wenku.baidu.com/user/index",//URL   这里面的Cookie试试

感谢您的回复。试了一下,还是不行,操作超时。
 楼主| 发表于 2013-4-24 16:47:38 | 显示全部楼层
站长苏飞 发表于 2013-4-24 16:26
最后一步使用Url = "http://wenku.baidu.com/user/index",//URL   这里面的Cookie试试

我抓了一下,评分那个地方的postdata
Cookie: BAIDUID=6574DDB150B3578ADC4FE1036E5B7F5C:FG=1; BDUSS=djeFJpTDVzVTR5NHJBRzFKS2FxNWhKNFpNZVVycjNqMHR6b0NXeEZKMnVnSjFSQUFBQUFBJCQAAAAAAAAAAAEAAABGMN4UYmFvX2p1bl93AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK7zdVGu83VRZH; Hm_lvt_d8bfb560f8d03bbefc9bdecafc4a4bf6=1366684587; WK_daily_signIn=62616f5f6a756e5f77; PMS_Cache=1366684587890; WK_UC_RD_TP_V2=1; Hm_lpvt_d8bfb560f8d03bbefc9bdecafc4a4bf6=1366684688; bdshare_firstime=1366684688906
发表于 2013-4-24 16:50:19 | 显示全部楼层
bbsq3232 发表于 2013-4-24 16:47
我抓了一下,评分那个地方的postdata
Cookie: BAIDUID=6574DDB150B3578ADC4FE1036E5B7F5C:FG=1; BDUSS=d ...

你调试着看一下发送的Cookie和Post,网页上的和程序发送的有那些不同,然后应该能想到是那的问题,我这边暂时帮你测试不了
 楼主| 发表于 2013-4-24 16:54:36 | 显示全部楼层
站长苏飞 发表于 2013-4-24 16:50
你调试着看一下发送的Cookie和Post,网页上的和程序发送的有那些不同,然后应该能想到是那的问题,我这边 ...

恩,好的,我试试看。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-11-25 06:06

© 2014-2021

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