Family Search

Sztuczki, kruczki i nauczki nie tylko dla wnuczki i prawnuczki.

Brak Możliwości Zapisu Całego Arkusza SKANU

🕵🏻 Problem ten nie dotyczy wszystkich ksiąg, jednakże tam, gdzie się pojawia, jest drażniący, co prawda można zrobić zrzut ekranu kawałka, i tak cząstka po cząsteczce zebrać cały arkusz do kupy, lecz jest to uciążliwe, poniższa metoda upraszcza to.

Czemu by nie pójść, krok dalej? I nie zapisać, podczas parzenia herbaty, kilka skanów, jednorazowym uruchomieniem i kilkoma kliknięciami?

Zasada działania Skryptu

  • Skrypt emuluje monitor o wysokiej rozdzielczości, następnie na nim otwiera specjalną wersję przeglądarki „Google Chrome Puppeteer” (https://pptr.dev/) — w trybie „incognito” (pozbawionym elementów graficznych, proces niewidoczny na ekranie).
  • Następnie w przeglądarce „Google Chrome Puppeteer” zostaje otwarta pierwsza strona kliszy mikrofilmu np.: https://www.familysearch.org/ark:/61903/3:1:33S7-9RQ4-QP7?i=15&cc=1910265&cat=260556; po czym zostaje odnalezione na stronie okienko logowania (odnalezienie niego odbywa się za pomocą ID okienka loginu, hasła), i zostają do niego wprowadzone parametry zawarte w pliku konfiguracyjnym, następnie odnajdywany jest klawisz „zaloguj” i wykonywane jest jego kliknięcie. W kwestii technicznej niczym to nie odbiega od ręcznego logowania się na stronie.
  • Następnie na podstawie podanego w pliku konfiguracyjnym zakresu interesujących nas kliszy/skanów, następuje iteracja, zdarzenia.
      • Zostaje znalezione okienko wprowadzania numeru kliszy/skanu, poprzez potrójne kliknięcie, zostaje cała treść zaznaczona, i zastąpiona wartością numeru pierwszego skanu/kliszy, a następnie wirtualnie jest wciśnięty klawisz Enter.
      • Następuje okres ładowania się strony i skanu/kliszy w wirtualnym emulowanym oknie przeglądarki, ten proces również niczym się nie różni w kwestii technicznej od przeglądania ręcznego, skanów/klisz w normalnej przeglądarce. W zależności od szybkości internetu oraz podanej żądanej rozdzielczości w pliku konfiguracyjnym, jak i obciążenia serwerów proces ten może potrwać dłużej lub krócej, czas ten określa się w pliku konfiguracyjnym, proponuje wartość powyżej 15 sekund. Niemniej najlepiej jest ze stoperem zmierzyć ile czasu potrzeba na wyostrzenie się skanu/kliszy podczas przeglądania w normalnej przeglądarce, a następnie nieco go zwiększyć zważywszy na dużo większą zadaną rozdzielczość.
      • Następnie w sub folderze w katalogu umiejscowienia skryptu zostaje zapisany plik PNG o nazwie numeru skanu/kliszy wewnątrz danego mikrofilmu — jest to normalny „print screen” tegoż wirtualnego pulpitu o wysokiej rozdzielczości choćby „4k” (w kwestii podnoszenia hipotetycznej działalności na granicy prawa niniejszego skryptu, można by równie dobrze oskarżać o nielegalność MacOs, Windows, Linux czy Android, za posiadanie możliwości wykonywania zrzutów zawartości ekranu — bo zapisany plik jest właśnie zrzutem zawartości ekranu, czyli oprócz skanu/kliszy zawiera i ramkę, i pasek tytułowo-brandingowy ze strony FamilySearch.
      • Następnie, dopóki licznik iteracji nie osiągnie limitu, określonego zadanym w pliku konfiguracyjnym przedziałem stron/skanów/kliszy proces począwszy od potrójnego kliknięcia w numer skanu/kliszy/strony, jest powtarzany, gdy dobiegnie końca, okienko konsoli wykonywania skryptu zostanie zamknięte.


Node.js – środowisko uruchomieniowe zaprojektowane do tworzenia wysoce skalowalnych aplikacji internetowych, szczególnie serwerów www napisanych w języku JavaScript. Umożliwia tworzenie aplikacji sterowanych zdarzeniami wykorzystujących asynchroniczny system wejścia-wyjścia.

PowerShell Core to otwarty, wieloplatformowy interpreter poleceń, przystosowany do pracy ze strukturyzowanymi danymi (JSON, CSV, XML i inne).

Aby uruchomić mój skrypt i miliony innych, które znajdziesz w internecie, zainstaluj świętą trójcę JavaScriptu.


Git – rozproszony system kontroli wersji.

Instalacja i Konfiguracja naszego rozwiązania

Utwórz na swoim dysku, w dowolnym miejscu, folder o dowolnej nazwie, a w nim uruchom konsole PowerSchell Core i wpisz poniższe polecenia, każdorazowo zatwierdzając enterem.

git clone https://github.com/Cisowscy/zapisywacz-skanow-familysearch.git

cd zapisywacz-skanow-familysearch

npm i

Start notepad Config/UWIERZYTELNIENIE.txt

Start notepad ZADANIA.txt

node src/app.js

W przypadku (4) i (5) otworzy się edytor tekstu, a w nim musisz podać swoje dane, zamiast tych obecnych tam, i zapisać zmiany, musisz to zrobić nim uruchomisz program poprzez (6).

Przy następnym uruchomieniu możesz posłużyć się dwukrotnym kliknięciem w "Uruchom.cmd" lub także przez konsole wykonując (4), (5) i (6) polecenie.

Pełna instrukcja znajduje się w folderze jako plik INSTRUKCJA.pdf tym linkiem.

Efekt działania skryptu,

kolejny poprawny zapis,

niestety czasem ucina :/

a ten zapis trzeba powtórzyć.