最近,做的东西需要从网页下载文件。以前没怎么接触网页源码js之类的。只做过简单的给定地址下载。
这是相关一段网页源码,对应到网页是一个按钮,点击后直接下载。在源码里实在没找到与下载地址相关的字串。感觉关键在onclick里。不过本人对js实在一窍不通。通过浏览器查看到下载地址是:http://d126.d.iask.com/fs/800/1/c0a21288f133a056df29ea97ed0a90a830547120/mp3/《迷踪之国2楼兰妖耳》36.mp3
个人感觉http://d126.d.iask.com应该是个服务器,知道的兄弟请指点下这个地址究竟是怎么得到的。非常感谢!!!!相关的源码是:<div class="p5" align="right"><a href="#" class="a05" target="_blank" onClick="openWindow('/browse/mycollect.php?fileid=7118483&uid=1565275414', '450', '200', '收藏'); return false;"><img src="http://i0.sinaimg.cn/pfp/ishare/gxsc.gif" border="0" width="14" height="14" hspace="3" align="absmiddle">收藏此资料</a> <a href="/315_4share.php?fileid=7118483&uid=1565275414" target="_blank" onClick ="openWindow('/315_4share.php?fileid=7118483&uid=1565275414', '500', '350', '举报'); return false;"><img src="http://i1.sinaimg.cn/pfp/ishare/gx_jb.gif" border="0" width="14" height="14" hspace="3" align="absmiddle">举报</a></div>
                    <div class="pl20">
<iframe name="iframe_data" style="display:none;"></iframe>
<form name="downLoad" id="downLoad" method="post" action="/download.php?fileid=7118483" target="iframe_data" style="margin:0;">
            <table border="0" cellpadding="0" cellspacing="0"  style="background:url() no-repeat; float:left;" class="hand" title="点击即可下载此资料" onclick="javascript:if(0 >0)if(!confirm('下载该资料将扣除0分,是否继续?'))return false;document.downLoad.submit();">
            <tr>
            <td width="184" height="37" align="right"><span class="f10">0分<br>9.78MB</span></td>
            <td width="7"></td>
            </form>
            </tr></table><table  border="0" cellpadding="0" cellspacing="0"><tr>
<td style="width:150px;padding-left:10px;padding-top:10px;cursor:default;color:00007f;">
<a href="http://ishare.iask.sina.com.cn/help/faq.html#n3" class="a05" target="_blank">无法下载?(暂不支持迅雷)</a>
</td>
</tr></table>

解决方案 »

  1.   

    你看那段码里面的document.downLoad.submit(). 实际上是将你正在访问的页面中的信息全部发送到了服务端. 网页源码里应该有一些input, 里面记录了它需要验证的各种数据. 你要模拟整个过程就要看页面的源码, 然后向它的download.php提交数据, 以期望从它的返回中得到你想要的下载地址. 但是, 现在稍微注意了系统安全的论坛或者网站的服务端都有验证, 在收到一个请求的时候首先就会验证一些信息: 比如是否是从这个页面发来的请求, 或者发来的请求中包含了一个字段(这个字段必须是访问此页面时, 服务端传来的随机值), 所以你通过发送一个请求也许它不会验证通过, 不予返回也是很正常的. 服务端进行的验证, js端无解
      

  2.   

    webbrowser 的 innerhtml 可以 解决掉么?