用JavaScript获取网页中的js、css、Flash等文件(2)

JavaScript没有提供获取js文件内容的接口,因此首先要对注册表进行改造:运行regedit,定位到HKEY_CLASSES_ROOT\.js,在它下面增加两个字符串类型的值:
Content Type=application/x-javascript
PerceivedType=text
如果修改的时候不放心,可以参考HKEY_CLASSES_ROOT\.css的缺省设置,它们只是Content Type的值不同。注册表改造是一次性的工作,改完就不用再动。

在改造完成后,用CtrlN抓取js文件的步骤与前述一般步骤相同,在步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:

javascript:str='<HTML><HEAD><BASE HREF="'https://www.jb51.net/;str+=document.URL;str+='"></HEAD><BODY><br>\n';c=document.scripts;for(i=0;i<c.length;i++){o=c[i];if (o.src=='')continue;str+='<a href="'https://www.jb51.net/;str+=o.src;str+='">'https://www.jb51.net/;str+=o.src;str+='</a><br>\n';};str+='</BODY></HTML>';document.write(str);

这段代码自动对网页进行检查,如果网页中嵌入了js文件,则自动显示出js文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键再选“目标另存为”菜单,或直接点链接;即可将文件保存到硬盘上。如果不能保存,请先确认是否已经按照上面说的方法对注册表进行过设置;如果还不行,可以将js文件的URL复制到地址栏上,然后按回车试试。

比较怪异的是用eBook Workshop做的E书(页面URL以ada99:开头),在地址栏上敲入js文件的URL然后回车,会直接显示出js文件内容及其执行结果,需要点“查看->源文件”菜单才可以获得原始js文件代码。不过这种书一般都用unEbookWorkshop反编译了吧?

五、从E书或网页中获取Flash文件

对于Flash这种嵌入对象的文件,直接下载就可以,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:

javascript:str='<HTML><HEAD><BASE HREF="'https://www.jb51.net/;str+=document.URL;str+='"></HEAD><BODY><br>\n';c=document.all;for(i=0;i<c.length;i++){o=c[i];if(o.tagName!="OBJECT")continue;sih=o.innerHTML;nd=document.createDocumentFragment();nd.appendChild(document.createElement('<bod></body>'));nd.firstChild.outerHTML=sih;no=document.createElement(nd.firstChild.outerHTML);document.body.appendChild(no);str+='<a href="'https://www.jb51.net/;str+=no.src;str+='">'https://www.jb51.net/;str+=no.src;str+='</a><br>\n';};str+='</BODY></HTML>';document.write(str);

这段代码自动对网页进行检查,如果网页中嵌入了Flash对象,则自动显示出swf文件的下载链接,否则显示一个空页或无反应。在链接上点鼠标右键,选“目标另存为”,即可将文件保存到硬盘上。如果直接点击链接,则会显示出Flash画面。

我经常看到有人问:“怎样抓取网页上的漂亮Flash?”,其实答案就是这么简单,平时上网俺也经常用这段代码抓Flash,不过需要注意:如果页面镶嵌在frame中,则需要突破frame进入真正的页面中才能使用这段代码。另外这段代码使用了createDocumentFragment方法,只能在IE 6上运行。

现在还有一种很极端的电子书:整本书只有一个网页,里面嵌入了一个Flash文件作为目录,点击Flash中的链接,则转入其它Flash文件,即真正的内容藏在一堆Flash文件里。对于这种电子书,用上面的代码一次只能抓到一个Flash,需要逐步点进去才能抓全,有的甚至要用flasm反编译出抓到的Flash文件的运行脚本,再从脚本中找出它所链接的其它Flash文件的文件名(俺都是很卑鄙地直接搜索.swf),然后将文件名转成绝对URL,即可生成下载链接。例如已知某Flash文件的绝对URL为,则用下面的代码可以单独下载此文件:

javascript:document.write('<a href="https://ebook/pic.swf">右键另存为</a>');

这种方法每次都要改URL,当然比前面说的方法麻烦,但是有时候也只能用这种方法。顺带一提,flasm还真是个好东西,某些Flash文件在脚本中限制该文件只能在网络上播放,不能从本地硬盘播放,也可以用它去除这种限制。

六、从E书或网页中获取背景音乐文件

背景音乐文件可以象Flash一样直接下载,因此在前述一般步骤的步骤4中,将下面内容复制、粘贴到地址栏上,然后按回车键即可看到内容:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjjwdp.html