2011-01-30 60 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表单的字段吗?