如何免費(fèi)下載百度文庫的收費(fèi)文檔(下載分析)_第1頁
如何免費(fèi)下載百度文庫的收費(fèi)文檔(下載分析)_第2頁
如何免費(fèi)下載百度文庫的收費(fèi)文檔(下載分析)_第3頁
如何免費(fèi)下載百度文庫的收費(fèi)文檔(下載分析)_第4頁
如何免費(fèi)下載百度文庫的收費(fèi)文檔(下載分析)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

如何免費(fèi)下載百度文庫的收費(fèi)文檔 -下載分析 新注冊一個(gè)用戶的的積分是 20。 所以,要想在上面下載許多文檔,是不現(xiàn)實(shí)的。 對于收費(fèi)的文檔,想想緩存里應(yīng)該有的吧。 找了,沒找到。 感覺挺神奇的,用 flash/flex顯示 word內(nèi)容。 用 httpwatch看一下。 鏈接: /view/e76593c3d5bbfd0a795673a6.html 找到 2個(gè)跟 flash相關(guān)的鏈接 /static/flash/reader.swf /play/e76593c3d5bbfd0a795673a6?pn=1&rn=5 第一個(gè),是閱讀器。第二個(gè)是文檔內(nèi)容 從閱讀器開始吧。 用 Sothink SWF Decompiler打開 跟顯示的很像,應(yīng)該就是這個(gè)了。 看一下 as代碼吧。 package reader_fla import flash.display.*; import flash.events.*; dynamic public class MainTimeline extends MovieClip 這個(gè)類用來,處理進(jìn)度條的。不管了。 package baidu.iknow import flash.display.*; import flash.events.*; public class main extends Sprite 找到加載的主函數(shù)了。 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,以及這個(gè) url,怎么個(gè)展示法了。 在 DocViewer中找到這樣一段。 正好證明了上面的第 2個(gè)跟 flash相關(guān)的鏈接 (這樣寫,是為了防止文檔頁數(shù)越界,到最后一頁,自動返回第一頁) /play/e76593c3d5bbfd0a795673a6?pn=1&rn=5 上面的這個(gè)地址,就是由 main.as和 DocViewer.as兩個(gè)類生成出來的。 e76593c3d5bbfd0a795673a6,文檔編號 pn=1,已經(jīng)加載了第 1頁,當(dāng)前顯示的是第 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); 數(shù)據(jù)處理 var binaryRequest:* = new URLRequest(tmpURL); 讀取數(shù)據(jù) binaryLoader.load(binaryRequest); if (this._showLoading) dispatchEvent(new Event(SHOW_LOADING, true); this._inLoading = true; 用 binaryLoader加載讀過來的數(shù)據(jù),并設(shè)置,正在加載的提示狀態(tài)。 下面,主要看 binaryLoader的幾個(gè)監(jiān)聽事件了。 ProgressEvent.PROGRESS, this.binaryLoading 正在加載的處理事件 Event.COMPLETE, this.binaryLoadComplete 加載完成的處理事件 IOErrorEvent.IO_ERROR, this.binaryLoadError 加載出錯(cuò)的處理事件 設(shè)置進(jìn)度條,沒什么好看的。 有點(diǎn)長,下面還有。不拿過來了。 這里就是處理下載的內(nèi)容的。 看一下,下載的內(nèi)容什么樣。先。 在 httpwatch中看一下, content和 stream Server:Lighttpd,好熟悉。先不談這個(gè),均衡用的。 頁數(shù)出來了 下面應(yīng)該是內(nèi)容。 Content里顯示不是可顯示的 flash格式,肯定不是了。 (268039bytes),不用說了,這么大 200多 KB,差不多了,寫到這,我看了一下,我寫的這個(gè)文檔大小。 哈哈 ,有可能,是把文檔內(nèi)容直接給下載完了哦。 不說了。 直接分析 下載 結(jié)束后的處理代碼。 代碼,還是貼一下吧。好寫注釋。 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_8totalPage); if (!this._pagesLoaded) this._pagesLoaded = 0; this._pagesLoaded = this._pagesLoaded + (Number(_loc_8toPage) - Number(_loc_8fromPage) + 1); this._fromPage = Number(_loc_8fromPage); this._toPage = Number(_loc_8toPage); 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_8fromPage)-; var _loc_9:int; while (_loc_9 0) this.byteArr2DisplayObj(this._hasConvertPages); else trace(blank document .); cessNoDoc(); this._loadPercent = 0; dispatchEvent(new Event(STOP_LOADING, true); this._inLoading = false; return; / end function 先留著,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論