LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 755|回复: 0

如何实现这样的爬虫程序(有些难度)? z

[复制链接]
发表于 2006-8-3 22:28:07 | 显示全部楼层 |阅读模式
网站用的是ASP.NET+MSSQL, 需要POST Data登陆(序号和密码方式),Post的目标页面是ASP.NET页面,在要提交的Form里都有一个__ViewState隐藏Input字段;提交后会出来包含一个/info/index.aspx连接的页面(根据相应的序号产生的)
详细网页源码已附在下面

现在有一堆序号, 范围分别为1000-1100,2100-2200,3100-3200,...
密码都是000,想自动在登陆后向页面/info/index.aspx发送请求并下载该页面,把文件名保存为:<相应的序号>.html

该如何实现呢?

对网络编程不太懂,只晓得用类似
http://192.168.0.1/xxx.aspx?__EV ... x=35&imgDl.y=14
可以自动登陆


附: 登陆页面xxx.aspx的代码如下:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  2. <HTML>
  3.         <HEAD>
  4.                 <title>xxx</title>
  5.                 <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  6.                 <meta name="CODE_LANGUAGE" Content="C#">
  7.                 <meta name="vs_defaultClientScript" content="JavaScript">
  8.                 <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  9.                 <link href="images/style.css" rel="stylesheet" type="text/css">
  10.                 <link type=text/css rel="stylesheet" href=css/page.css>
  11.                 <script language="javascript">
  12.         function window.onload()
  13.                 {
  14.                         var a="a";
  15.                         if(a=="a")
  16.                         {
  17.                                 document.all.tabDl.style.display="";
  18.                                 document.all.tabcc.style.display="none";               
  19.                                 frmxs.action="./new.aspx"
  20.                                 frmxs.submit();       
  21.                         }
  22.                         else
  23.                         {
  24.                         document.all.tabDl.style.display="none";
  25.                         document.all.tabcc.style.display="";
  26.                         frmxs.submit();
  27.                         }
  28.                 }               
  29.         function check()
  30.         {               
  31.                         if(document.all.txtXh.value=="")
  32.                         {
  33.                                 alert("UserName!");
  34.                                 document.all.txtXh.focus()
  35.                                 return false;
  36.                         }
  37.                         if(document.all.txtPwd.value=="")
  38.                         {
  39.                                 alert("Passwd!");
  40.                                 document.all.txtPwd.focus()
  41.                                 return false;
  42.                         }               
  43.                         __doPostBack('imgDl','');
  44.         }
  45.                 </script>
  46.                 <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  47.                 <style type="text/css">
  48.                 <!-- body { margin-left: 0px; margin-right: 0px; background-color: #ECE9D8; background-image:url(image/1Bg.gif)}       
  49. .STYLE27 {font-size: 16px}
  50. .STYLE28 {color: #993300}
  51. .STYLE29 {color: #000000}
  52. .STYLE30 {font-size: 14px}
  53. .STYLE31 {
  54.         font-family: "宋体";
  55.         font-size: 12px;
  56. }
  57.         -->
  58.                 </style>
  59.         </HEAD>
  60.         <body MS_POSITIONING="GridLayout">
  61.                 <form name="Form1" method="post" action="xxx.aspx" id="Form1">
  62. <input type="hidden" name="__EVENTTARGET" value="" />
  63. <input type="hidden" name="__EVENTARGUMENT" value="" />
  64. <input type="hidden" name="__VIEWSTATE" value="dDwtMTEwNzUxODYyNjs7bDxpbWdEbDs+PjxVpZI4R4rCovdVGkjO4kUdc2fB" />

  65. <script language="javascript" type="text/javascript">
  66. <!--
  67.         function __doPostBack(eventTarget, eventArgument) {
  68.                 var theform;
  69.                 if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
  70.                         theform = document.Form1;
  71.                 }
  72.                 else {
  73.                         theform = document.forms["Form1"];
  74.                 }
  75.                 theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
  76.                 theform.__EVENTARGUMENT.value = eventArgument;
  77.                 theform.submit();
  78.         }
  79. // -->
  80. </script>

  81.                         <table id="tabDl" width="197" height="135" border="0" align="left" cellpadding="0" cellspacing="0">
  82.                                 <tr>
  83.                                         <td width="197" height="35" align="center" valign="middle" background="image/bodyTop.gif" > <div align="center">入口</div></td>
  84.                                 </tr>
  85.                                 <tr>
  86.                                         <td width="197" height="115" align="center" valign="top" >
  87.                                                         <table width="100%" height="17%" align="center" cellpadding="0" cellspacing="0" id="Table1">
  88.                                                                 <tbody>
  89.                                                                        
  90.                                                                         <tr>
  91.                                                                           <td height="30" align="center" ><span style="WIDTH: 37px"><span style="WIDTH: 37px"><span style="WIDTH: 37px">UserName</span></span></span>
  92.                                                               <input name="txtXh" id="txtXh" type="text" style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 80px; BORDER-BOTTOM: 1px solid" maxlength="50" /></td>
  93.                                                                         </tr>
  94.                                                                        
  95.                                                                         <tr>
  96.                                                                           <td height="30" align="center" ><span style="WIDTH: 37px"><span style="WIDTH: 37px"><span style="WIDTH: 37px">Passwd</span></span></span>
  97.                                                                   <input name="txtPwd" id="txtPwd" type="password" style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 80px; BORDER-BOTTOM: 1px solid" maxlength="80" /></td>
  98.                                                                         </tr>
  99.                                                                         <tr>
  100.                                                                           <td height="27" align="center" ><input src="images/dl.gif" name="imgDl" id="imgDl" type="image" onClick="return check();" onMouseOver="this.style.cursor='hand'" /></td>
  101.                                                                   </tr>                                                                       
  102.                                                                         <tr>                                                                  </tr>
  103.                                                                 </tbody>
  104.                                         </table>
  105.                                                        
  106. <table width="92%" height="20%" align="center" cellpadding="0" cellspacing="0">
  107.                                           <tbody>
  108.                                       </tbody>
  109.                                           </table>
  110.                                 </td>
  111.                                 </tr>
  112.                   </table>
  113.                         <table id="tabcc" height="104" cellSpacing="0" cellPadding="0" width="197" align="left"
  114.                                 border="0">
  115.                                 <tr>
  116.                                         <td width="129" height="104"><table width="97%" height="96" border="0" align="center" cellpadding="0" cellspacing="0" class="table2" id="Table1">
  117.                                                         <tbody>
  118.                                                         <tr>
  119.                                         <td width="197" height="35"colspan="3"  align="center" valign="middle" background="image/bodyTop.gif" > <div align="center">入口</div></td>
  120.                                 </tr>
  121.                                                                 <tr>
  122.                                                                         <td height="22" colspan="2" class="style6">UserName:</td>
  123.                                                                           <td width="59%"><div class="style6"></div></td>
  124.                                                                 </tr>                                                       
  125.                                                                 <tr>
  126.                                                                     <td height="22" colspan="2" class="style6">Name:</td>
  127.                                                                         <td><div class="style6"></div></td>
  128.                                                                 </tr>
  129.                                                                 <tr>
  130.                                                                   <td width="21%" height="18" align="center" class="style6"><span class="style11"><span class="style8"><img src="images/dh3.gif" width="11" height="11"></span></span></td>
  131.                                                                     <td height="26" colspan="2" align="left" class="style6"><a href="./info/index.aspx" target="frm" onMouseOver="this.style.color='#99CCFF'" onMouseOut="this.style.color='#FF3300'"><strong>查看信息</strong></a></td>
  132.                                                             </tr>
  133.                                                                 <tr>
  134.                                                                   <td height="17" align="center" class="style6"><span class="style11"><span class="style8"><img src="images/dh3.gif" width="11" height="11"></span></span></td>
  135.                                                                     <td height="27" colspan="2" align="left" class="style6"><a href="./info/pwd.aspx" target="frm" onMouseOver="this.style.color='#99CCFF'" onMouseOut="this.style.color='#FF3300'"><strong>修改密码</strong></a></td>
  136.                                                             </tr>
  137.                                                                 <tr>
  138.                                                                   <td height="17" align="center" class="style6"><span class="style11"><span class="style8"><img src="images/dh3.gif" width="11" height="11"></span></span></td>
  139.                                                                     <td height="27" colspan="2" align="left" class="style6"><a id="hTc" name="hTc" onMouseOver="this.style.color='#99CCFF'" onMouseOut="this.style.color='#FF3300'" href="javascript:__doPostBack('hTc','')"><strong>退出登录</strong></a></td>
  140.                                                             </tr>
  141.                                                                
  142.                                                                 <tr>
  143.                                                                         <td height="8" colspan="3" align="center"></td>
  144.                                                                 </tr>
  145.                                                         </tbody>
  146.                                                 </table>
  147.                                   </td>
  148.                                 </tr>
  149.                   </table>
  150.                 </form>
  151.                 <form name="frmxs" method="post" action="./info/index.aspx" target="frm" >
  152.                 </form>
  153.         </body>
  154. </HTML>
复制代码




用下载软件如flashget 下载 "http://192.168.0.1/xxx.aspx?__EVENTTARGET=imgDl&__EVENTARGUMENT=&__VIEWSTATE=dDwtMTEwNzUxODYyNjs7bDxpbWdEbDs%2BPjxVpZI4R4rCovdVGkjO4kUdc2fB&txtXh=1000&txtPwd=000&imgDl.x=35&imgDl.y=14" 得到的html是这样子的:

  1. <script language='javascript'>window.location='./xxx.aspx';</script>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  3. <HTML>
  4. <HEAD>
  5. <title>xxx</title>
  6. <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
  7.   <meta name="CODE_LANGUAGE" Content="C#">
  8.   <meta name="vs_defaultClientScript" content="JavaScript">
  9.   <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  10.   <link href="images/style.css" rel="stylesheet" type="text/css">
  11.   <link type=text/css rel="stylesheet" href=css/page.css>
  12.   <script language="javascript">
  13. function window.onload()
  14.   {
  15.    var a="a";
  16.    if(a=="a")
  17.    {
  18.     document.all.tabDl.style.display="";
  19.     document.all.tabcc.style.display="none";
  20.     frmxs.action="./new.aspx"
  21.     frmxs.submit();
  22.    }
  23.    else
  24.    {
  25.    document.all.tabDl.style.display="none";
  26.    document.all.tabcc.style.display="";
  27.    frmxs.submit();
  28.    }
  29.   }
  30. function check()
  31. {
  32.    if(document.all.txtXh.value=="")
  33.    {
  34.     alert("璇疯惧ュ宸锛");
  35.     document.all.txtXh.focus()
  36.     return false;
  37.    }
  38.    if(document.all.txtPwd.value=="")
  39.    {
  40.     alert("璇疯惧ュ狅?);
  41.     document.all.txtPwd.focus()
  42.     return false;
  43.    }
  44.    __doPostBack('imgDl','');
  45. }
  46.   </script>
  47.   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  48.   <style type="text/css">
  49.   <!-- body { margin-left: 0px; margin-right: 0px; background-color: #ECE9D8; background-image:url(image/1Bg.gif)}
  50. .STYLE27 {font-size: 16px}
  51. .STYLE28 {color: #993300}
  52. .STYLE29 {color: #000000}
  53. .STYLE30 {font-size: 14px}
  54. .STYLE31 {
  55. font-family: "瀹浣";
  56. font-size: 12px;
  57. }
  58. -->
  59.   </style>
  60. </HEAD>
  61. <body MS_POSITIONING="GridLayout">
  62.   <form name="Form1" method="post" action="xxx.aspx?__EVENTTARGET=imgDl&amp;__EVENTARGUMENT=&amp;__VIEWSTATE=dDwtMTEwNzUxODYyNjs7bDxpbWdEbDs%2BPjxVpZI4R4rCovdVGkjO4kUdc2fB&amp;txtXh=1000&amp;txtPwd=passwd000&amp;imgDl.x=35&amp;imgDl.y=14" id="Form1">
  63. <input type="hidden" name="__EVENTTARGET" value="" />
  64. <input type="hidden" name="__EVENTARGUMENT" value="" />
  65. <input type="hidden" name="__VIEWSTATE" value="dDwtMTEwNzUxODYyNjs7bDxpbWdEbDs+PjxVpZI4R4rCovdVGkjO4kUdc2fB" />

  66. <script language="javascript" type="text/javascript">
  67. <!--
  68. function __doPostBack(eventTarget, eventArgument) {
  69.   var theform;
  70.   if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
  71.    theform = document.Form1;
  72.   }
  73.   else {
  74.    theform = document.forms["Form1"];
  75.   }
  76.   theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
  77.   theform.__EVENTARGUMENT.value = eventArgument;
  78.   theform.submit();
  79. }
  80. // -->
  81. </script>

  82.    <table id="tabDl" width="197" height="135" border="0" align="left" cellpadding="0" cellspacing="0">
  83.     <tr>
  84.      <td width="197" height="35" align="center" valign="middle" background="image/bodyTop.gif" > <div align="center">瀛︾?ュ?/div></td>
  85.     </tr>
  86.     <tr>
  87.      <td width="197" height="115" align="center" valign="top" >
  88. <table width="100%" height="17%" align="center" cellpadding="0" cellspacing="0" id="Table1">
  89. <tbody>

  90.   <tr>
  91.     <td height="30" align="center" ><span style="WIDTH: 37px"><span style="WIDTH: 37px"><span style="WIDTH: 37px">瀛﹀?/span></span></span>
  92.       <input name="txtXh" id="txtXh" type="text" style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 80px; BORDER-BOTTOM: 1px solid" maxlength="50" value="1000" /></td>
  93.   </tr>

  94.   <tr>
  95.     <td height="30" align="center" ><span style="WIDTH: 37px"><span style="WIDTH: 37px"><span style="WIDTH: 37px">瀵鐮</span></span></span>
  96.    <input name="txtPwd" id="txtPwd" type="password" style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; WIDTH: 80px; BORDER-BOTTOM: 1px solid" maxlength="80" /></td>
  97.   </tr>
  98.   <tr>
  99.     <td height="27" align="center" ><input src="images/dl.gif" name="imgDl" id="imgDl" type="image" onClick="return check();" onMouseOver="this.style.cursor='hand'" /></td>
  100.    </tr>
  101. <tr>     </tr>
  102. </tbody>
  103.      </table>

  104. <table width="92%" height="20%" align="center" cellpadding="0" cellspacing="0">
  105. <tbody>
  106.    </tbody>
  107. </table>
  108.     </td>
  109.     </tr>
  110.     </table>
  111.    <table id="tabcc" height="104" cellSpacing="0" cellPadding="0" width="197" align="left"
  112.     border="0">
  113.     <tr>
  114.      <td width="129" height="104"><table width="97%" height="96" border="0" align="center" cellpadding="0" cellspacing="0" class="table2" id="Table1">
  115. <tbody>
  116. <tr>
  117.      <td width="197" height="35"colspan="3"  align="center" valign="middle" background="image/bodyTop.gif" > <div align="center">瀛︾?ュ?/div></td>
  118.     </tr>
  119. <tr>
  120.   <td height="22" colspan="2" class="style6">瀛?宸:</td>
  121.   <td width="59%"><div class="style6"></div></td>
  122. </tr>
  123. <tr>
  124.      <td height="22" colspan="2" class="style6">濮 ?</td>
  125.   <td><div class="style6"></div></td>
  126. </tr>
  127. <tr>
  128.    <td width="21%" height="18" align="center" class="style6"><span class="style11"><span class="style8"><img src="images/dh3.gif" width="11" height="11"></span></span></td>
  129.      <td height="26" colspan="2" align="left" class="style6"><a href="./info/index.aspx" target="frm" onMouseOver="this.style.color='#99CCFF'" onMouseOut="this.style.color='#FF3300'"><strong>妤玟俊姣</strong></a></td>
  130.     </tr>
  131. <tr>
  132.    <td height="17" align="center" class="style6"><span class="style11"><span class="style8"><img src="images/dh3.gif" width="11" height="11"></span></span></td>
  133.      <td height="27" colspan="2" align="left" class="style6"><a href="./info/pwd.aspx" target="frm" onMouseOver="this.style.color='#99CCFF'" onMouseOut="this.style.color='#FF3300'"><strong>淇瑰?/strong></a></td>
  134.     </tr>
  135. <tr>
  136.    <td height="17" align="center" class="style6"><span class="style11"><span class="style8"><img src="images/dh3.gif" width="11" height="11"></span></span></td>
  137.      <td height="27" colspan="2" align="left" class="style6"><a id="hTc" name="hTc" onMouseOver="this.style.color='#99CCFF'" onMouseOut="this.style.color='#FF3300'" href="javascript:__doPostBack('hTc','')"><strong>殄虹诲?/strong></a></td>
  138.     </tr>
  139. <tr>
  140.   <td height="8" colspan="3" align="center"></td>
  141. </tr>
  142. </tbody>
  143.       </table>
  144.       </td>
  145.     </tr>
  146.     </table>
  147.   </form>
  148.   <form name="frmxs" method="post" action="./info/index.aspx" target="frm" >
  149.   </form>
  150. </body>
  151. </HTML>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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