|
发表于 2010-11-24 12:49:16
|
显示全部楼层
这个网站没有分页,可以把日期当分页来采,这是抓到的post数据:- __EVENTTARGET=QueryButton&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUJNTY3MzA5NTY4D2QWAgIDD2QWBAIFDzwrAA0BAA8WBh4LXyFEYXRhQm91bmRnHglQYWdlQ291bnQCAR4LXyFJdGVtQ291bnQCAWQWAmYPZBYGZg8PZBYCHgVzdHlsZQUrYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2ltYWdlcy9saW5lX2JnMy5naWYnKWQCAQ9kFgZmD2QWAgIBDw8WAh4EVGV4dGVkZAIBD2QWAgIBDw8WAh8EZWRkAgIPZBYCAgEPDxYCHwRlZGQCAg8PFgIeB1Zpc2libGVoZGQCBw8PZA8QFgFmFgEWAh4OUGFyYW1ldGVyVmFsdWVkFgECAmRkGAEFCUdyaWRWaWV3MQ88KwAIAQNmZDOWflRU4yYlKL3bNWFmQ7JSU7ce&txtDT=2010-11-17&__EVENTVALIDATION=%2FwEWBALUl%2B5XArz7uv8PAoCn6soEAquDur4M2iDScmpNqgcNSGRiokwx4SzAqsA%3D
复制代码 可见txtDT=2010-11-17是关键的地方,可以把日期作为分页提交post数据,这样就可以查询整个11月的信息,查10月,改下月份就行了,不过我只是通过采网址是直接把整页的重要信息做个标签来采集,所以数据很乱
再把post数据中的随机值处理下就可以了- __EVENTTARGET=QueryButton&__EVENTARGUMENT=&__VIEWSTATE=[POST随机值1]&txtDT=2010-11-[分页]&__EVENTVALIDATION=[POST随机值2]
复制代码 具体看规则
这些数据都是可以解释的- tr>
- <td class="td-left" width="13%">
- 请选择日期
- </td>
- <td class="td-main" width="25%">
- <input name="txtDT" type="text" id="txtDT" value="2010-11-24" />
-
- </td>
- <td class="td-main">
- <input language="javascript" onclick="if(!CheckDataSynax()) return; __doPostBack('QueryButton','')" name="QueryButton" type="button" id="QueryButton" value="查询" class="input-an" /></td>
-
- </tr>
- </table>
复制代码 这部分当点击查询按钮时会触发onclick="if(!CheckDataSynax()) return; __doPostBack('QueryButton','')" ,首先检查日期格式是否符合,符合进行__doPostBack函数,现在这里有2个函数,下面是他们的代码- <script language="JavaScript" type="text/javascript">
- function CheckDataSynax()
- {
- var oElement = document.getElementById("txtDT").value;
- var tmp_str = trim(oElement);
- if(!strShortDateTime(tmp_str))
- {
- alert('日期格式不正确!(正确的日期格式:1900-1-1)');
- return false;
- }
- else
- {
- return true;
- }
- }
- </script>
复制代码- <script type="text/javascript">
- <!--
- var theForm = document.forms['form1'];
- if (!theForm) {
- theForm = document.form1;
- }
- function __doPostBack(eventTarget, eventArgument) {
- if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
- theForm.__EVENTTARGET.value = eventTarget;
- theForm.__EVENTARGUMENT.value = eventArgument;
- theForm.submit();
- }
- }
- // -->
- </script>
复制代码 __doPostBack函数先设置了表单__EVENTTARGET的值,这个东西是代表查询的方式把,离路有的是输入页码而有的是点击下一页提交,__doPostBack('QueryButton','')执行后,可见__EVENTTARGET=QueryButton,而__EVENTARGUMENT=空的支付;
另外__VIEWSTATE=[POST随机值1]
EVENTVALIDATION=[POST随机值2]
一大堆字符就是POST随机值,把这些必要的表单项目&连接,提交就可以了 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?加入会员
x
|