如何得到这个网页地址???(50分)

  • 主题发起人 主题发起人 一头驴
  • 开始时间 开始时间

一头驴

Unregistered / Unconfirmed
GUEST, unregistred user!
访问:http://searchjob.chinahr.com/SearchResult.aspx?myLocIDList=5&isInterView=1
有许多页,如果想访问第三页,则通过点击3,可关键是:我想得到该页的真实url,请问怎么得到??
望可以得到的解答下,急死我了。[:(]
 
分析下html不就完了

不过他这个你要构造post参数到http://searchjob.chinahr.com/SearchResult.aspx?myLocIDList=5&isInterView=1
 
楼上的我知道,html我已经分析了,就是得不出答案啊。
 
好象提供的就是一个URL,其它页面的访问正如qdlover所讲,要自己POST相应参数,而没有一个可以GET相应页面的URL,这样真实的URL也就是你所提供的这个:
http://searchjob.chinahr.com/SearchResult.aspx?myLocIDList=5&isInterView=1
 
不一定,你看清楚了,后缀是ASPX,我现在做一个项目中完全是由数据库动态生成的客户网页,如果要URL,只有一个。在AJAX技术使用后,就更看不出URL的重定向了,可能完全是在同一个URL中处理。
 
如何post?post总得有个地址吧?
望指教!我如何才能实现下翻到下页,通过程序。
 
POST的网址就是上面你自己给出的.

至于如何POST信息,那是看你用什么方法来实现了!如果是INDY的话,它本身提供了POST方法.
只要修改一下相应的POST参数就可以实现翻页.....
 
gear1023,请具体指教!!谢谢!
 
关于如何用INDY的POST方法参见:

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1603145
或全文检索
http://www.richsearch.com/search/search.aspx?S1=+%2BPOST+%2BIndy&Submit1=+%E6%A3%80%E7%B4%A2+

具体要POST哪些参数请参照原HTML页的FORM所对应的POST参数即可.


如果还是搞不清楚,建议补充一下HTML的基础知识...
 
to gear1023:
晕,你的意思,我明白啊.
如果你post一个登陆的页面,你总要知道什么是登陆的处理页面吧?用户名和密码用什么字段表示的总也可以知道的吧?
这样才可以写成类似Fpost.text :='username=yourname&password=yourpwd';的东西吧??
现在我就是找不出那些处理页面和相应的字段啊。。。
 
你可能没法找出来。
如果他的地址只有一个,而是根据参数再进行重定向。
这个是ASPX的,那么里面可能用到了。NET的一些地址转移方法。
在JAVA中,SUBMIT可以定成SUMBIT。DO这个地址,而是根据STRUTS的配置文件再定向。
 
楼上的意思,此题无解?
 
翻来复去的都是讲,前面都已经讲过了,要POST的数据字段在FORM里,处理页面位于ACTION里,这个应该是非常基础的...
 
to gear1023:
谢谢持续关注,可能我的表达有问题.让你误会了.请您在我问题中网页的form和action中找找?可以找到我需要的东西吗?
 
过两天我做个小程序给你看一下吧。
 
选择页面的href为: javascript:__doPostBack('PageBarTop','3')

在网页源代码中搜索 __doPostBack 的定义,如下所示:
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.Form1;
}
else {
theform = document.forms["Form1"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}

看来这个方法的功能很简单——将事件对象以及参数传入到一个form(document.Form1)
的域中,然后简单的提交这个form。

搜索Form1的定义,如下所示:
<form name=&quot;Form1&quot; method=&quot;post&quot; action=&quot;SearchResult.aspx?myLocIDList=5&amp;isInterView=1&quot; id=&quot;Form1&quot;>
<input type=&quot;hidden&quot; name=&quot;__EVENTTARGET&quot; value=&quot;&quot; />
<input type=&quot;hidden&quot; name=&quot;__EVENTARGUMENT&quot; value=&quot;&quot; />
<input type=&quot;hidden&quot; name=&quot;__VIEWSTATE&quot; value=&quot;dDwyMTQyM......
...
...
<input name=&quot;HidIsClear&quot; id=&quot;HidIsClear&quot; type=&quot;hidden&quot; />
<iframe id=IFCookie name=IFCookie width=1 height=1 frameborder=no></iframe>
</form>
它的action就是当前网页的地址,而翻页所影响的两个input是隐藏域,我们只要控制这
两个隐藏域对应的参数值即可。我试过在URL中直接加入
&__EVENTTARGET=PageBarTop&__EVENTARGUMENT=8
不过似乎达不到目的——还是只能用模拟Post了。

它的__VIEWSTATE域中存放了Base64编码信息,解开了是这样:
t<214202491;t<p<l<UrlKey;SqlWhere;>;l<myLocIDList=5&isInterView=1;WHERE (job_id
in (Select job_id From searchjobloc Where loc_id in (5)));>>;l<i<0>;>;......
——竟然放了SQL的Where子句在里面,有趣:)
 
to JonnyZheng:期待您的程序.
to creation-zy:问题究竟如何解决?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部