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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 10425|回复: 10

[其他] 困扰了一年多至今未破解的网站,求破解!!!

[复制链接]
发表于 2013-12-12 17:22:58 | 显示全部楼层 |阅读模式
网址:http://www.pinnacle.com
之前我用Delphi的idhttp去尝试过,一直没破解,后来就用webbrowser去模拟填表了,后来webbrowser一直有内存的问题,所以才放弃用webbrowser,这次打算用httpwebrequest,和用idhttp一样都是登入不成功。。。跪求高手破解,找到原因!
图1:网页post内容

网页post内容

网页post内容


图2:httphelper的post内容
pinnacle_post2.jpg

我post之后,去get "https://www1.pinnaclesports.com/members/canvas.asp" 就会重新跳到首页http://www.pinnacle.com


不知道是否需要附带cookies信息,我的代码如下:

        private THttpHelper httpWeijing;   //THttpHelper 即HttpHelper,习惯将类前面加T类似于Delphi的写法
        private bool bl_logined_weijing = false;
        private string uid;
        private HttpResult result;





            HttpItem item;
            string html;
            if (!bl_logined_weijing)
            {
                if (httpWeijing == null)
                    httpWeijing = new THttpHelper();
                item = new HttpItem()
                {
                    URL = "http://www.pinnaclesports.com/",//http://www.pinnaclesports.com/default.aspx/GetContentHTML?culture='zh-TW'
                    Method = "get",
                };
                result = httpWeijing.GetHtml(item);
                html = result.Html;
                string str_1 = TPubFun.CopyStrEx(html, "__PREVIOUSPAGE", "value=\"", "\"", false);
                string str_2=TPubFun.CopyStrEx(html, "__VIEWSTATE", "value=\"", "\"", false);
                string str_PostData = "__EVENTTARGET=ctl00$LF$LB&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=" + str_2+"&__PREVIOUSPAGE="+str_1+
                    "&ctl00$LDDL=4&ctl00$PSDDL=american&ctl00$MCPH$LF$UserName=ML333632&ctl00$MCPH$LF$Password=DP7336&ctl00$MCPH$LF$LanguageID=4" +
                    "&ctl00$MCPH$LF$PriceStyle=american&ctl00$MCPH$LF$LinesTypeView=c&ctl00$MCPH$LF$MemberServer=&dvc=d";
                str_PostData =
                    "__EVENTTARGET=ctl00%24LF%24LB&__EVENTARGUMENT=&__LASTFOCUS=&__VIEWSTATE=%2FwEPDwUKMTMwOTM4MzY1NmRk&__PREVIOUSPAGE=2eoCOYt8-BaH3Fk4TmLAjNDipT_VBAaVYOUq08FQtLoUD6yQNdxYWcgAm6WCzq7jEhWHYHfkfoYqy2Phd4oKcdp4J4U1&ctl00%24LDDL=4&ctl00%24PSDDL=american&ctl00%24MCPH%24LF%24UserName=用户名&ctl00%24MCPH%24LF%24Password=密码&ctl00%24MCPH%24LF%24LanguageID=4&ctl00%24MCPH%24LF%24PriceStyle=american&ctl00%24MCPH%24LF%24LinesTypeView=c&ctl00%24MCPH%24LF%24MemberServer=&dvc=d";

                item = new HttpItem()
                {
                    URL = "https://www.pinnaclesports.com/Secure/LoginPage.aspx?destination=sports", //URL     必需项   
                    Encoding = System.Text.Encoding.GetEncoding("gbk"), //URL     可选项 默认为Get   
                    Method = "post", //URL     可选项 默认为Get   
                    Cookie = result.Cookie, //字符串Cookie     直接用第一次GET到的cookie
                    Referer = "http://www.pinnaclesports.com/", //来源URL     可选项   
                    Postdata = str_PostData, //Post数据     
                    Timeout = 100000, //连接超时时间     可选项默认为100000   
                    ReadWriteTimeout = 30000, //写入Post数据超时时间     可选项默认为30000   
                    UserAgent = "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)",
                    //用户的浏览器类型,版本,操作系统     可选项有默认值   
                    ContentType = "application/x-www-form-urlencoded", //返回类型    可选项有默认值   

                };
                result = httpWeijing.GetHtml(item);
                string str_url = result.Header.ToString();
                str_url = TPubFun.CopyStr(str_url, "Location:", "\r\nSet-Cookie:", false);

                item = new HttpItem()
                {
                    URL = "https://www1.pinnaclesports.com/members/canvas.asp",//str_url,
                    Method = "get",
                    Cookie = result.Cookie, //字符串Cookie     直接用第一次GET到的cookie
                    Referer = "http://www.pinnaclesports.com/", //来源URL     可选项
                    Timeout = 100000, //连接超时时间     可选项默认为100000   
                    ReadWriteTimeout = 30000, //写入Post数据超时时间     可选项默认为30000   
                    UserAgent = "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)",
                    ContentType = "application/x-www-form-urlencoded", //返回类型    可选项有默认值  
                };
                result = httpWeijing.GetHtml(item);

                html = result.Html;
                //cookie = result.Cookie;
                rtxt1.Text = html ;
//                bl_logined_weijing = true;
            }



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-12-12 20:45:12 | 显示全部楼层
明天看看,目测是post地址写错了
 楼主| 发表于 2013-12-13 10:29:41 | 显示全部楼层
求站长支持!求助{:soso_e183:}
发表于 2013-12-13 10:32:18 | 显示全部楼层
你先调试看看第一步执行完之后有Cookie返回吗?
 楼主| 发表于 2013-12-13 11:39:26 | 显示全部楼层
有cookies返回,网页cookies: pinnacle_post11.jpg


httphelper的cookies:
pinnacle_post22.jpg
发表于 2013-12-13 11:48:56 | 显示全部楼层
http://www.sufeinet.com/thread-6791-1-1.html 不要用字符串、Cookie
发表于 2013-12-13 15:12:53 | 显示全部楼层
站长苏飞 发表于 2013-12-13 11:48
http://www.sufeinet.com/thread-6791-1-1.html 不要用字符串、Cookie

{:soso_e189:}非常感谢!{:soso_e163:}
 楼主| 发表于 2013-12-13 17:41:04 | 显示全部楼层
我那里的HttpHelper已经是最新的SetCookie方法,之前我已经更新过了
发表于 2013-12-14 15:56:00 | 显示全部楼层
xtfnpgy 发表于 2013-12-13 17:41
我那里的HttpHelper已经是最新的SetCookie方法,之前我已经更新过了

不 要用字符串Cookie就行了,你试试,你回复不要光回复你自己,你回复你自己我根本看不到你 提醒。你回复谁要单击谁下面的回复
 楼主| 发表于 2013-12-14 17:20:01 | 显示全部楼层
站长苏飞 发表于 2013-12-14 15:56
不 要用字符串Cookie就行了,你试试,你回复不要光回复你自己,你回复你自己我根本看不到你 提醒。你回复 ...

你是说注释掉这一行?//  Cookie = result.Cookie

我试过了,假如注释掉,提示cookie失败:

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/CookieFailed.aspx">here</a>.</h2>
</body></html>


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

本版积分规则

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

GMT+8, 2024-6-10 03:09

© 2014-2021

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