TA的每日心情 | 奋斗 2020-6-5 22:18 |
---|
签到天数: 22 天 [LV.4]偶尔看看III
|
本课的重点:1、首次进入“开心农场”的数据获取及易语言代码编写;
2、获取农场相关数据及易语言代码编写。
一、首次进入“开心农场”的数据获取及易语言代码编写;
我们正常登陆论坛后进入论坛界面也就是演示站中的“广场”版面,把HttpWatch工具打开后并按下Record按钮,单击“家园”,然后再点“开心农场”,如下图所示:
这样操作,我们得到两个过程的数据,一是进入家园数据;二是进入开心农场数据。查看数据后,进入家园的数据对我们相对来说不是重点,如果进入开发农场用到些数据或链接我们再返回去看。现在我们来看下“进入开心农场”的数据,共60条数据,大家所截取的数据有可能只有59条。先分析第一、二条数据:- + 0.000 0.672 1025 373 GET 302 Redirect to userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D [url]http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978[/url]
- + 0.673 1.372 1046 14993 GET 200 text/html; charset=gbk [url]http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D[/url]
复制代码 上现两条数据Http通信方式为GET,下面分析看下上面两条数据的各相关信息,
第一条数据:
Headers(协议头):- (Request-Line) GET /dzx151gbk/userapp.php?mod=app&id=1021978 HTTP/1.1
- Accept image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
- Accept-Encoding gzip, deflate
- Accept-Language zh-cn
- Connection Keep-Alive
- Cookie 6Qvx_2132_lastvisit=1333628254; 6Qvx_2132_sid=quCU75; 6Qvx_2132_lastact=1333631953%09home.php%09misc; _D_SID=E39D2ACE; 6Qvx_2132_seccodeS9cI0=457brC3zuwd%2FimVQH2aE0m8lq3w3z9B42IfCcAMA6W3EDpGAMbDaGbXRKqgsnZslrJHQfn65CcIWl6w; 6Qvx_2132_auth=d55bnSYpRtE1w070lufuDHAzejLUin7P9nJnVwMr3PSr%2BAMnpWKlz47nA6ZbOymg%2FWf5jj5oimBGylHU88DQ; 6Qvx_2132_ulastactivity=8c87f7uNaUt3b8EDmQNiE%2BDup5U%2F3rZ8yvMtWyDJBbmtH%2Fd61DTZ; 6Qvx_2132_home_readfeed=1333631944
- Host demo.wgbcw.com
- Referer [url]http://demo.wgbcw.com/dzx151gbk/home.php[/url]
- User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
复制代码 Query String(查询字串):POST Data:无; Content:无
Stream:1、- GET /dzx151gbk/userapp.php?mod=app&id=1021978 HTTP/1.1
- Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
- Referer: [url]http://demo.wgbcw.com/dzx151gbk/home.php[/url]
- Accept-Language: zh-cn
- Accept-Encoding: gzip, deflate
- User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
- Host: demo.wgbcw.com
- Connection: Keep-Alive
- Cookie: 6Qvx_2132_lastvisit=1333628254; 6Qvx_2132_sid=quCU75; 6Qvx_2132_lastact=1333631953%09home.php%09misc; _D_SID=E39D2ACE; 6Qvx_2132_seccodeS9cI0=457brC3zuwd%2FimVQH2aE0m8lq3w3z9B42IfCcAMA6W3EDpGAMbDaGbXRKqgsnZslrJHQfn65CcIWl6w; 6Qvx_2132_auth=d55bnSYpRtE1w070lufuDHAzejLUin7P9nJnVwMr3PSr%2BAMnpWKlz47nA6ZbOymg%2FWf5jj5oimBGylHU88DQ; 6Qvx_2132_ulastactivity=8c87f7uNaUt3b8EDmQNiE%2BDup5U%2F3rZ8yvMtWyDJBbmtH%2Fd61DTZ; 6Qvx_2132_home_readfeed=1333631944
复制代码 2、- HTTP/1.1 302 Moved Temporarily
- Connection: close
- Date: Thu, 05 Apr 2012 13:30:41 GMT
- Server: Microsoft-IIS/6.0
- X-Powered-By: ASP.NET
- X-Powered-By: PHP/5.2.8
- Content-Type: text/html; charset=gbk
- Set-Cookie: 6Qvx_2132_lastact=1333632641%09userapp.php%09app; expires=Fri, 06-Apr-2012 13:30:41 GMT; path=/
- Location: userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D
复制代码 第二条数据:
Headers(协议头):- (Request-Line) GET /dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D HTTP/1.1
- Accept image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
- Accept-Encoding gzip, deflate
- Accept-Language zh-cn
- Connection Keep-Alive
- Cookie 6Qvx_2132_lastvisit=1333628254; 6Qvx_2132_sid=quCU75; 6Qvx_2132_lastact=1333632641%09userapp.php%09app; _D_SID=E39D2ACE; 6Qvx_2132_seccodeS9cI0=457brC3zuwd%2FimVQH2aE0m8lq3w3z9B42IfCcAMA6W3EDpGAMbDaGbXRKqgsnZslrJHQfn65CcIWl6w; 6Qvx_2132_auth=d55bnSYpRtE1w070lufuDHAzejLUin7P9nJnVwMr3PSr%2BAMnpWKlz47nA6ZbOymg%2FWf5jj5oimBGylHU88DQ; 6Qvx_2132_ulastactivity=8c87f7uNaUt3b8EDmQNiE%2BDup5U%2F3rZ8yvMtWyDJBbmtH%2Fd61DTZ; 6Qvx_2132_home_readfeed=1333631944
- Host demo.wgbcw.com
- Referer [url]http://demo.wgbcw.com/dzx151gbk/home.php[/url]
- User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
复制代码 Query String(查询字串):- id 1021978
- mod app
- my_suffix Lw==
复制代码 POST Data:无; Content(返回内容):略。
Stream(数据流):1、(Stream 2 请参考HttpWatch数据)- GET /dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D HTTP/1.1
- Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
- Referer: [url]http://demo.wgbcw.com/dzx151gbk/home.php[/url]
- Accept-Language: zh-cn
- Accept-Encoding: gzip, deflate
- User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
- Host: demo.wgbcw.com
- Connection: Keep-Alive
- Cookie: 6Qvx_2132_lastvisit=1333628254; 6Qvx_2132_sid=quCU75; 6Qvx_2132_lastact=1333632641%09userapp.php%09app; _D_SID=E39D2ACE; 6Qvx_2132_seccodeS9cI0=457brC3zuwd%2FimVQH2aE0m8lq3w3z9B42IfCcAMA6W3EDpGAMbDaGbXRKqgsnZslrJHQfn65CcIWl6w; 6Qvx_2132_auth=d55bnSYpRtE1w070lufuDHAzejLUin7P9nJnVwMr3PSr%2BAMnpWKlz47nA6ZbOymg%2FWf5jj5oimBGylHU88DQ; 6Qvx_2132_ulastactivity=8c87f7uNaUt3b8EDmQNiE%2BDup5U%2F3rZ8yvMtWyDJBbmtH%2Fd61DTZ; 6Qvx_2132_home_readfeed=1333631944
复制代码 现在我们根据上面两条数据来编写代码,先看第一条数据中的协议头,和我们第八课的协议头多数一样,只有Referer有所关化,因为定义的是全局数据类型,我们重新附值就可以。我们参考Query String(查询字串)及“(Request-Line) GET /dzx151gbk/userapp.php?mod=app&id=1021978 HTTP/1.1”(注:id为1021978是“开心农场”在网页上的编号,我们可以从进入家园的HttpWatch数据中看到。),编写下面的代码:- .版本 2
- ' 首次进入开心农场第一条数据
- ' http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978
- ' 协议头的Referer有所变化
- Request.Referer = “http://demo.wgbcw.com/dzx151gbk/home.php”
- URL = “/dzx151gbk/userapp.php?mod=app&id=1021978”
- GET (URL, 返回内容) ' 根据HttpWatch数据可知返回数据为空
- 输出调试文本 (“首次进入开心农场第一条数据=======” + 返回内容)
- 取Cookie并设置 (“http://” + Request.Host + URL)
复制代码 同理我们把第二条数据的易语言代码如下:- .版本 2
- ' 首次进入开发农场第二条数据
- ' http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D
- URL = “/dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw==”
- GET (URL, 返回内容)
- 输出调试文本 (“首次进入开心农场第二条数据=======” + 返回内容)
- 取Cookie并设置 (“http://” + Request.Host + URL)
复制代码 测试代码中……先把HttpWatch数据先上传上来吧:
测试代码无误,正确返回数据。下面我们接着分析HttpWatch中的数据,经观察,第三、四、五、六条数据是关于网页样式及调用JavaScript脚本的数据,和农场数据无关则省略。而第七条数据,我们目前不知道有啥用,那还是按照它操作好了。易语言代码如下:- .版本 2
- Request.Accept = “*/*”
- Request.Referer = “http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw==”
- ' http://demo.wgbcw.com/dzx151gbk/uc_server/avatar.php?uid=2&size=small
- URL = “/dzx151gbk/uc_server/avatar.php?uid=2&size=small”
- GET (URL, 返回内容) ' 根据HttpWatch数据可知返回数据为空
- '输出调试文本 (“首次进入开心农场第七条数据=======” + 返回内容)
- 取Cookie并设置 (“http://” + Request.Host + URL)
复制代码 第八条数据,看到“my_iframe.js”,应该会想到frame就是农场的意思,这js脚本一定和农场有关,我们现在还不确定这文件到底有何用,我们在这先不用管它,还是按照协议操作下(注:无Cookies)。- .版本 2
- ' 首次进入农场第八条数据
- ' 协议头有所变化
- ' (Request-Line) GET /scripts/my_iframe.js HTTP/1.1
- ' Host static.manyou.com
- ' Referer http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D
- Request.Host = “static.manyou.com”
- ' http://static.manyou.com/scripts/my_iframe.js
- 返回内容 = “”
- URL = “/scripts/my_iframe.js”
- GET (URL, 返回内容) ' 根据HttpWatch数据可知返回数据为空
- 输出调试文本 (“首次进入开心农场第八条数据=======” + 返回内容)
复制代码 第九条数据是取账号头像的,略。
现在我们来分析第十条数据:URL- + 2.486 0.444 888 4377 GET 200 text/html http://apps.manyou.com/1021978/?my_uchId=2&my_sId=9022208&my_prefix=http%3A%2F%2Fdemo.wgbcw.com%2Fdzx151gbk%2F&my_suffix=%2F&my_current=http%3A%2F%2Fdemo.wgbcw.com%2Fdzx151gbk%2Fuserapp.php%3Fmod%3Dapp%26id%3D1021978%26my_suffix%3DLw%253D%253D&my_extra=&my_ts=1333632641&my_appVersion=0&my_fullscreen=0&my_sig=8d1d28e93c0092d3199c6207b19d1c8b
复制代码 Headers(协议头):- (Request-Line) GET /1021978/?my_uchId=2&my_sId=9022208&my_prefix=http%3A%2F%2Fdemo.wgbcw.com%2Fdzx151gbk%2F&my_suffix=%2F&my_current=http%3A%2F%2Fdemo.wgbcw.com%2Fdzx151gbk%2Fuserapp.php%3Fmod%3Dapp%26id%3D1021978%26my_suffix%3DLw%253D%253D&my_extra=&my_ts=1333632641&my_appVersion=0&my_fullscreen=0&my_sig=8d1d28e93c0092d3199c6207b19d1c8b HTTP/1.1
- Accept image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
- ……
- Host apps.manyou.com
- ……
复制代码 Query String(查询字串):- my_appVersion 0
- my_current http://demo.wgbcw.com/dzx151gbk/userapp.php?mod=app&id=1021978&my_suffix=Lw%3D%3D
- my_extra
- my_fullscreen 0
- my_prefix http://demo.wgbcw.com/dzx151gbk/
- my_sId 9022208
- my_sig 8d1d28e93c0092d3199c6207b19d1c8b
- my_suffix /
- my_ts 1333632641
- my_uchId 2
复制代码 POST Data:无。Content和Stream查看Http Watch数据。
下面说说易语言编写代码时注意的几个要点:
1、根据上面第十条数据的协议头内容可知Accept 和 Host和上一次GET通信相比有所变化,我们得重新赋值。
2、看到GET的URL太长及查询字串数据太多,呵呵是不是被吓住了,我们以前提过“当前数据的POST或GET中的URL的内容多少都会利用前面通信的返回数据”,于是我们就在HttpWatch中搜索文本比如“9022208”,经搜索我们在第二条数据的返回内容里就可以找到它,取之。第二条数据中要取的地方:- <iframe id="ifm0" frameborder="0" width="810" scrolling="no" height="810" style="position: absolute; top: -5000px; left: -5000px;" src="http://apps.manyou.com/1021978/?my_uchId=2&my_sId=9022208&my_prefix=http%3A%2F%2Fdemo.wgbcw.com%2Fdzx151gbk%2F&my_suffix=%2F&my_current=http%3A%2F%2Fdemo.wgbcw.com%2Fdzx151gbk%2Fuserapp.php%3Fmod%3Dapp%26id%3D1021978%26my_suffix%3DLw%253D%253D&my_extra=&my_ts=1333632641&my_appVersion=0&my_fullscreen=0&my_sig=8d1d28e93c0092d3199c6207b19d1c8b"></iframe>
复制代码 如果不想把它分成像查询字串那样,我们就直接取一长串字符就行,当然为了防止以后的代码中用到同一数值的话,最好还是像查询字串那样一个一个取出来。另因正则相对比较难些,我们这就用文本操作来取。
增加内容(2013年3月16日):
由于协议头有所变化,所以我又重新写了个GET1函数来实现接收数据,那么第十条数据执行的代码如下:
.版本 2
.支持库 iext2
Request.Accept = “image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*”
Request.Host = “apps.manyou.com”
协议头 = “Accept:” + Request.Accept + #换行符 + “Accept-Encoding:” + Request.AcceptEncoding + #换行符 + “Accept-Language:” + Request.AcceptLanguage + #换行符 + “Connection:” + Request.Connection + #换行符 + “Host:” + Request.Host + #换行符 + “Referer:” + Request.Referer + #换行符 + “User-Agent:” + Request.UserAgent ' + #换行符 + “x-requested-with:XMLHttpRequest”
已创建连接 = 假
my_值.my_uchId = 账号信息.uid
URL = “”
URL = “/1021978/?my_uchId=” + my_值.my_uchId + “&my_sId=” + my_值.my_sId + “&my_prefix=” + my_值.my_prefix + “&my_suffix=” + my_值.my_suffix + “&my_current=” + my_值.my_current + “&my_extra=” + my_值.my_extra + “&my_ts=” + my_值.my_ts + “&my_appVersion=” + my_值.my_appVersion + “&my_fullscreen=” + my_值.my_fullscreen + “&my_sig=” + my_值.my_sig
输出调试文本 (“URL===============” + “/1021978/?my_uchId=” + my_值.my_uchId + “&my_sId=” + my_值.my_sId + “&my_prefix=” + my_值.my_prefix + “&my_suffix=” + my_值.my_suffix + “&my_current=” + my_值.my_current + “&my_extra=” + my_值.my_extra + “&my_ts=” + my_值.my_ts + “&my_appVersion=” + my_值.my_appVersion + “&my_fullscreen=” + my_值.my_fullscreen + “&my_sig=” + my_值.my_sig)
临时字节集 = 取空白字节集 (20480)
临时字节集 = GET_1 (URL, 协议头, 返回内容)
输出调试文本 (“首次进入开心农场第十条数据=======” + 返回内容)
主窗口.超级编辑框1.内容 = 到文本 (返回内容)
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|