Piszę robota do strony internetowej. Jego odpowiedź jest zakodowana za pomocą gzip.
Nie jestem w stanie poprawnie przeanalizować określonego pola, mimo że dekompresja zakończyła się pomyślnie. Używam również htmlagilitypack do przeanalizowania go,
przeanalizowana wartość pola jest tylko częściąoryginalna wartość jako przykład : Dostaję tylko / wEWAwKc04vTCQKb86mzBwKln / PuCg == mając na uwadze, że firebug pokazuje rzeczywistą wartość znacznie dłużej: / wEWBgKj7IuJCgKb86mzBwKln / PuCgLT250qAtC0 + 8cMAvimiNYD
co oznacza "==" na końcu? Zakładam, że jest to błąd w imieniu dekompresorów?
Odpowiedzi:
0 dla odpowiedzi № 1Charakter =
jest dodawany przez Kodowanie Base64.
Kodowanie następującego zdania
Człowiek wyróżnia się nie tylko swoim rozumem, aleprzez tę szczególną pasję innych zwierząt, która jest żądzą umysłu, że przez wytrwałość rozkoszy w ciągłym i niestrudzonym pokoleniu wiedzy, przekracza krótką gwałtowność jakiejkolwiek cielesnej przyjemności.
dostaniesz
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4 =
The =
postać może być obecna tylko na końcuCiąg Base64. Jeśli ją zdobędziesz, oznacza to, że prawdopodobnie otrzymujesz wszystkie postacie; vice versa nie jest prawdą, ponieważ ta postać jest używana jako dopełnienie i nie zawsze jest obowiązkowa we wszystkich implementacjach Base64.
0 dla odpowiedzi nr 2
Nie masz problemu z dekompresją - strona została oczywiście poprawnie zdekompresowana, w przeciwnym razie twoje oprogramowanie prawdopodobnie spowodowałoby błąd lub zobaczyłbyś tylko kilka dziwnych postaci.
Jednak otrzymujesz ciąg znaków ASCII, który jest "oczywiście w kodowaniu Base64. Równe znaki na końcu pojawiają się, jeśli oryginalne dane binarne nie są wielokrotnością 3 bajtów. Więc to jest doskonałe dane Base64.
Co do tego, dlaczego twój robot pobiera inne dane niżFirefox z Firebug: Nie wiem, ale potrafię obrazować wiele powodów. Są to dwie oddzielne sesje przeglądania, a strona internetowa może przypisać im różne identyfikatory sesji lub w jakiś sposób zarejestrować historię sesji.
W każdym razie, pod koniec dnia nie rozumiem twojego problemu. Czego dokładnie nie możesz przeanalizować? Czy dostałeś jakiś błąd? pole? Czy mówisz o polu formularza HTML?