Ostatnio widziałem, że scribd bardzo utrudnia użytkownikom (użytkownikom darmowym) przeglądanie dokumentu przechowywanego na ich stronie. Nie ma możliwości wyszukiwania w dokumencie, nie mówiąc już o możliwości jego pobrania.
Za pomocą javascript ładują strony na żądanie w przeglądarce, więc funkcja „zapisz jako” przeglądarki niewiele pomaga.
Ku mojemu zdziwieniu zobaczyłem, że nawet kopiowanie / wklejanie tekstu kopiuje bełkot do schowka! Aby sprawdzić, co było nie tak, wyłączyłem JavaScript w przeglądarce, a następnie ponownie załadowałem ten sam dokument. Voila, widziałem bełkot. Wygląda więc na to, że javascript ze skryptu w jakiś sposób dekoduje bełkot, a następnie wyświetla go w przeglądarce.
Teraz moje pytanie brzmi: nawet po włączeniu javascript, a tekst jest poprawnie renderowany w przeglądarce, jeśli przejdę do obiektów DOM odpowiadających zaznaczonemu tekstowi, nadal widzę bełkotliwy tekst.
Więc teraz jestem zdezorientowany. Tekst jest wyświetlany użytkownikowi, ale obiekty DOM nadal zawierają bełkot. Pytanie brzmi: jakiego rodzaju haczyki / kod javascript używa strona, aby zachować bełkot w obiektach DOM i nadal renderować zdekodowany tekst?
Czy mogę uzyskać dostęp do zdekodowanego tekstu? Moim zamiarem nie jest inżynieria wsteczna algorytmu do dekodowania, ale zlokalizowanie miejsca przechowywania dekodowanego tekstu?
Przykładowy dokument to:
Zobacz, co się stanie, gdy włączysz / wyłączysz Javascript!
źródło
Odpowiedzi:
Spójrz na
font-family
dlaspan
. Używają niestandardowej czcionki (w tym przypadkuff6
).Muszą to zrobić, aby więcej dokumentów PDF było poprawnie wyświetlanych. Podobnie jak w dokumentach PDF, nie ma wymogu, aby tekst w dokumencie musiał używać standardowego zestawu znaków. Potrzebuje tylko takiego, który ma kod odwzorowujący glify we wbudowanej czcionce.
źródło
Jeśli spojrzysz na wyświetlany tekst w porównaniu do „bełkotu”, zobaczysz, że niektóre litery są takie same, a niektóre są zastąpione. Na przykład „Mltmrprfsm Jblbemr” to „Enterprise Manager”. Biorąc pod uwagę wystarczającą ilość tekstu, powinieneś być w stanie zbudować szybką tabelę tłumaczeń. Wiemy już, że M tłumaczy na E , L -> N , T , R i P są jasne, F -> R itp. Biorąc pod uwagę czas, pracę detektywistyczną i skromne umiejętności programistyczne, można przetłumaczyć cały dokument.
Oczywiście nie ma gwarancji, że następny dokument użyje tej samej
ff6
czcionki, o której wspomniał Dan D. , więc pobranie tej czcionki do użytku lokalnego powinno być następnym krokiem, jeśli chcesz zapisać tekst na później.źródło
Możesz spróbować zrobić zrzut ekranu za pomocą narzędzia przycinania przeglądarki, a następnie użyć dowolnej z łatwo dostępnych witryn ocr online, aby przekonwertować go na tekst. To powinno cię załatwić.
źródło