2011-01-30 84 views
0

我正在爲一個網站編寫一個爬行工具。 它的迴應是gzip編碼。解壓錯誤?

雖然解壓成功,但我無法正確解析特定字段。 我也使用htmlagilitypack解析它,

字段的解析值是僅作爲一個例子的原始值 的一部分: 我正在只/ wEWAwKc04vTCQKb86mzBwKln/PuCg == 而螢火蟲示出了實際值同樣長: /wEWBgKj7IuJCgKb86mzBwKln/PuCgLT250qAtC0 + 8cMAvimiNYD

末尾'=='是什麼意思? 我假設它代表解壓縮器出現錯誤?

+0

你能告訴我們任何代碼嗎? _你在膨脹壓縮數據嗎?你是否將任何返回的結果從字節轉換爲字符串?如果是這樣,哪種編碼?等等。 – 2011-01-30 07:30:35

回答

0

字符=Base64 encoding加上。

編碼以下句子

人是傑出的,不僅是他的原因,但由其他動物這個奇異的激情,這是一種心靈的慾望,通過喜悅在延續了毅力和不知疲倦的知識生成,超越了任何肉體愉悅的短暫激情。

,你會得到

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmF​​uY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 =

=字符只能出現在Base64字符串的末尾。如果你獲得它,這意味着你可能會獲得所有的角色;反之亦然,因爲該字符被用作填充字符,並且在所有Base64實現中並不總是強制性的。

0

您沒有解壓縮問題。該頁面顯然已被正確解壓縮。否則,你的軟件可能會拋出一個錯誤,或者你會看到一堆奇怪的字符。

然而,你得到的是一個ASCII字符串,顯然是在Base64編碼。如果原始二進制數據不是3字節的倍數,則會出現等號。所以這都是完美的Base 64數據。至於爲什麼您的抓取工具獲取與Firebug不同的數據比火狐:我不知道,但可以成像的原因很多。這些是兩個單獨的瀏覽會話,網站可能會爲他們分配不同的會話ID或以某種方式記錄會話的某些歷史記錄。

無論如何,在一天結束時,我不明白你的問題。你究竟是無法解析的?你有什麼錯誤嗎?你是什​​麼意思字段?你在談論一個HTML表單的字段嗎?