欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    如何免费下载百度文库的收费文档(下载分析).doc

    • 资源ID:3265497       资源大小:373.01KB        全文页数:11页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    如何免费下载百度文库的收费文档(下载分析).doc

    如何免费下载百度文库的收费文档-下载分析http:/wenku.baidu.com新注册一个用户的的积分是20。所以,要想在上面下载许多文档,是不现实的。对于收费的文档,想想缓存里应该有的吧。找了,没找到。感觉挺神奇的,用flash/flex显示word内容。用httpwatch看一下。链接:http:/wenku.baidu.com/view/e76593c3d5bbfd0a795673a6.html找到2个跟flash相关的链接http:/wenku.baidu.com/static/flash/reader.swfhttp:/wenku.baidu.com/play/e76593c3d5bbfd0a795673a6?pn=1&rn=5第一个,是阅读器。第二个是文档内容从阅读器开始吧。用Sothink SWF Decompiler打开跟显示的很像,应该就是这个了。看一下as代码吧。package reader_fla import flash.display.*; import flash.events.*; dynamic public class MainTimeline extends MovieClip这个类用来,处理进度条的。不管了。package baidu.iknow import flash.display.*; import flash.events.*; public class main extends Sprite找到加载的主函数了。package baidu.iknow import flash.display.*; import flash.events.*; public class Reader extends Sprite private var _firstPagesNum:int; private var _normalPageNum:int; private var _bookmark:String; private var _toolBar:ToolBar; private var _docURL:String; private const BG_COLOR:int = 8890837; private var _bg:Sprite; private const BORDER_COLOR:int = 5668272; private var _docViewer:DocViewer; private var _loading:Loading;上面的读取类,明白了不?_docURL,文档地址BG_COLOR,背景色出来了下面分析下DocViewer,以及这个url,怎么个展示法了。在DocViewer中找到这样一段。正好证明了上面的第2个跟flash相关的链接(这样写,是为了防止文档页数越界,到最后一页,自动返回第一页)http:/wenku.baidu.com/play/e76593c3d5bbfd0a795673a6?pn=1&rn=5上面的这个地址,就是由main.as和DocViewer.as两个类生成出来的。 e76593c3d5bbfd0a795673a6,文档编号pn=1,已经加载了第1页,当前显示的是第1页rn=5,一共5页注意,pn<=5读下来,怎么处理的呢?才成功显示成我们需要的文档的呢?var binaryLoader:* = new URLLoader();binaryLoader.dataFormat = "binary"binaryLoader.addEventListener(ProgressEvent.PROGRESS, this.binaryLoading);binaryLoader.addEventListener(Event.COMPLETE, this.binaryLoadComplete);binaryLoader.addEventListener(IOErrorEvent.IO_ERROR, this.binaryLoadError);数据处理var binaryRequest:* = new URLRequest(tmpURL);读取数据binaryLoader.load(binaryRequest);if (this._showLoading) dispatchEvent(new Event("SHOW_LOADING", true);this._inLoading = true;用binaryLoader加载读过来的数据,并设置,正在加载的提示状态。下面,主要看binaryLoader的几个监听事件了。ProgressEvent.PROGRESS, this.binaryLoading正在加载的处理事件Event.COMPLETE, this.binaryLoadComplete加载完成的处理事件IOErrorEvent.IO_ERROR, this.binaryLoadError加载出错的处理事件设置进度条,没什么好看的。有点长,下面还有。不拿过来了。这里就是处理下载的内容的。看一下,下载的内容什么样。先。在httpwatch中看一下,content和streamServer:Lighttpd,好熟悉。先不谈这个,均衡用的。页数出来了下面应该是内容。Content里显示不是可显示的flash格式,肯定不是了。(268039bytes),不用说了,这么大200多KB,差不多了,写到这,我看了一下,我写的这个文档大小。哈哈 ,有可能,是把文档内容直接给下载完了哦。不说了。直接分析下载结束后的处理代码。代码,还是贴一下吧。好写注释。private function binaryLoadComplete(param1:Event = null) : void var _loc_11:ByteArray; var _loc_12:int; trace("binaryLoadComplete."); Console.log("binaryLoadComplete."); if (this._noDoc) if (this._noDoc.parent) this._noDoc.parent.removeChild(this._noDoc); this._noDoc = null; this._loadPercent = 0; var _loc_2:* = URLLoader(param1.target); var _loc_3:* = _loc_2.data; this._byteArray = ; var _loc_4:Array; var _loc_5:int; var _loc_6:* = _loc_3.length; while (_loc_5 < _loc_6) if (_loc_5 + 3 < _loc_6) if (_loc_3_loc_5 = 67 | _loc_3_loc_5 = 70 && _loc_3_loc_5 + 1 = 87 && _loc_3_loc_5 + 2 = 83 && _loc_3_loc_5 + 3 = 9 | _loc_3_loc_5 + 3 = 10) _loc_4.push(_loc_5); else _loc_4.push(_loc_6); break; _loc_5+; var _loc_7:* = _loc_3.readMultiByte(_loc_40, "utf-8"); trace(_loc_7); Console.log(_loc_7); var _loc_8:* = JSON.decode(_loc_7); this._pagesAll = Number(_loc_8"totalPage"); if (!this._pagesLoaded) this._pagesLoaded = 0; this._pagesLoaded = this._pagesLoaded + (Number(_loc_8"toPage") - Number(_loc_8"fromPage") + 1); this._fromPage = Number(_loc_8"fromPage"); this._toPage = Number(_loc_8"toPage"); trace("pagesall:" + this._pagesAll + " , frompage:" + this._fromPage + " , topage:" + this._toPage); Console.log("pagesall:" + this._pagesAll + " , frompage:" + this._fromPage + " , topage:" + this._toPage); this._pagethLoading = Number(_loc_8"fromPage")-; var _loc_9:int; while (_loc_9 < _loc_4.length-) _loc_11 = new ByteArray(); _loc_12 = _loc_4_loc_9 + 1 - _loc_4_loc_9; _loc_3.readBytes(_loc_11, 0, _loc_12); this._byteArray.push(_loc_11); _loc_9+; trace(".这一次加载了多少页:" + this._byteArray.length); Console.log(".这一次加载了多少页:" + this._byteArray.length); this._hasConvertPages = 0; this._allConvertPages = Math.min(this._byteArray.length, this._toPage - this._fromPage + 1); if (this._allConvertPages > 0) this.byteArr2DisplayObj(this._hasConvertPages); else trace("blank document ."); this.processNoDoc(); this._loadPercent = 0; dispatchEvent(new Event("STOP_LOADING", true); this._inLoading = false; return; / end function先留着,哪位有兴趣,写个程序哦?提示:模拟请求后,打开这个页,将内容,下载。Httpclient+ selenium或htmlutil,可以完成收费文档下载了。别忘了,互相转换cookies,session什么的。待续。Mail:gaoqs1984gmail.com上官伯阳2010-3-26下载flashpaper,自己转换一下文档成swf说明了,是由flashpaper做成的swf,再显示的

    注意事项

    本文(如何免费下载百度文库的收费文档(下载分析).doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开