Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Как скачать документ из АИС ЦГАСО-2

Самарский архив видимо что-то у себя обновил и предыдущий способ для скачивания документов оттуда работать перестал. Очень жаль, удобство работы с интерфейсом архива оставляет желать лучшего, не говоря о скорости доступа к документам.

С просьбой что-то с этой проблемой сделать, мне написало около десятка человек, сегодня у меня наконец дошли руки посмотреть что изменилось. Как и в прошлый раз надо открыть окно консоли браузера и запустить скрипт (я проверял его в «Хроме»). Плохие новости в том, что скрипт будет работать относительно неспешно — 400 страниц обрабатывается примерно за 5—6 минут.

В конце работы в консоли будет длинная строка, начинающаяся с «dxo.itemsValue» и заканчивающаяся на «];». Её, как и в прошлый раз, надо будет скопировать в файл и передать в параметрах программе.

!function () {
    var id = '[id$=seadragonContainer] div div';
    var bt = '[id$=ForwardBtn]';
    var pages = {};
    var o = document.querySelector(id);

    !function _observe(undefined) {
        var ob = new MutationObserver(function() {
            var imgs = $(id+' img[src*=Pages]:first');
            if (imgs && imgs[0]) {
                var page = imgs[0].src.match(/id=([^&]+)/)[1];
                if (pages[page] == undefined) {
                    pages[page] = true;

                    ob.disconnect();

                    var next = $(bt);
                    if (next && next[0]) {
                        _observe();
                        next[0].click();
                    } else {
                        console.clear();
                        console.log("dxo.itemsValue=['" + Object.keys(pages).join("','")+"'];");
                    }
                }
            }
        });

        ob.observe(o, { childList: true, attributes: true, subtree: true });
    }();

    o.setAttribute('start', true);
}();

Вообще, можно было бы заморочиться и сильно ускорить сбор данных, но я не буду этого делать — меня результат вполне устраивает.

Внимание: скрипт должным образом я ещё не протестировал (просто не успел), так что на корректную работу пока не рассчитывайте!

45 комментариев
Андрей 2014

Спасибо большое буду тестить

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Андрей:

Вчера ночью выкачал первый документ, всё прошло нормально.

masterspammer (masterspammer.livejournal.com) 2014

var page = imgs[0].src.match(/id=([^&]+)/)[1];

После этой строки ломается подсветка (как будто регулярное выражение не закончилось).

Евгений Степанищев (bolknote.ru) 2014

Комментарий для masterspammer.livejournal.com:

Ну да, я вижу. Повод обновить highlight.js, только для этого надо где-то развернуть локальную копию сайта, посмотреть чтобы ничего не сломалось… в общем, сделаю, но не скоро :)

Евгений Степанищев (bolknote.ru) 2014

Комментарий для masterspammer.livejournal.com:

Обновил, но не помогло :(

Евгений Степанищев (bolknote.ru) 2014

Уже несколько документов скачал, по всей видимости работает.

Не скажу 2014

Комментарий для Евгения Степанищева:

А зачем jQuery ($ === jQuery?)?

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Не скажу:

Почему бы и нет, если он там всё равно есть?

Андрей 2014

Комментарий для Евгения Степанищева:

Здравствуйте!

Пытаюсь работать с Вашей программой, но ничего не получается. На любом деле видит только 9 изображений и куда скачивает непонятно, до сих пор не нашел эти волшебные 9 изображений.

Андрей 2014

Работаю с делами Тобольского и Тюменского архива.

Ребята, которые с Тобольска качали, отзовитесь, дайте свой мейл/профиль ВГД, что бы я с Вами связался.

Андрей 2014

Все равно, разобрался теперь с 9 пустышками, которые не найти. Теперь через консоль лог все норм делаю. Но опять не могу найти то место, куда они загружаются. Их просто нет!

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Андрей:

Я понятия не имею как устроен Тобольский и Тюменский архив, помочь не смогу.

Григорий 2014

Комментарий для Андрей:

 Место куда скачивается указывается в командной строке. Если аис не работает то соответсвенно папка не создается

Андрей 2014

Комментарий для Григорий:

АИС Тюменский сейчас работает.
Объясните, каким образом я должен указать на место куда скачивать?

Спасибо!)

Андрей 2014

Комментарий для Григорий:

Все вроде делаю правильно, через некоторое время он мне выдает вот это.
http://hostingkartinok.com/show-image.php?id=d1dee92e8f7e23435025b1baf2486b40
Изображений нигде нет.

Иван 2014

Комментарий для Евгения Степанищева:

Самарский архив вновь заработал.
Запускаю в консоли Хрома скрипт в ответ — «ReferenceError: MutationObserver is not defined»
Запускаю в консоли Мозиллы — «true» и тишина...

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Иван:

Возможно «Хром» старый. У меня 38-й.

Иван 2014

Комментарий для Евгения Степанищева:

Сейчас попробую обновить, по результату отпишусь.

Иван 2014

Теперь вообще не входит... Внутренняя ошибка

Иван 2014

Комментарий для Евгения Степанищева:

Пошло создание списка! Спасибо огромное!

Василий 2014

Работаю с Самарским архивом. Запускаю представленный скрипт в консоли Хрома, происходит обработка страниц документа (выглядит как перелистывание). Сохраняются ли куда-либо изображения я понять не могу. «Место куда скачивается указывается в командной строке.» — могли бы Вы объяснить чуть подробнее, как нужно задавать место для сохранения изображений? Может быть

Евгений Степанищев (bolknote.ru) 2014

Комментарий для Василий:

Не сохраняются. Читайте мои посты по этой теме.

Василий 2014

Комментарий для Евгения Степанищева:

Разобрался. Спасибо!

Григорий 2015

не робит, пролистывает один лист и скрипт вырубается

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Григорий:

Значит опять прикрыли лавочку.

Григорий 2015

нет, не прикрыли. из готовых все тянет прекрасно
если вводить скрипт после этого каждый раз (пробовал на 14 листах) в конце выводится код для последнего листа

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Григорий:

Ну, я имею ввиду, что именно этот способ прикрыли. Кстати, какой браузер?

Григорий 2015

Комментарий для Евгения Степанищева:

Хром, вот только обновил позавчера 39.0.2171.95 m
а есть дела в которых пролистывает штук пять и останавливается

Константин 2015

Комментарий для Евгения Степанищева:

Версия Хрома 39.0.2171.95 m.
Также «затыкается» на следующем после первого листа.
Из порядка 20 дел один раз пролистал несколько листов.
По-моему, началось сие перед Новым годом.

Евгений Степанищев (bolknote.ru) 2015

Значит опять что-то поменяли. Как понадобятся дела из самарского — буду смотреть.

Иван 2015

Комментарий для Евгения Степанищева:

Будем ждать с нетерпением ))

Илдар 2015

как я понял можно скачивать те фотки, у которых есть электронная копия?

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Илдар:

Да.

Илдар 2015

спасибо

Евгений 2015

Очень ждем когда Вам понадобятся дела из архива.

Дмитрий 2015

Если нужны 1-2 картинки делайте так:

  1. сохраните страницу себе
  2. найдите в тексте страницы dxo.itemsValue=[
        !!! причём должен быть идентификатор, например: af9a0081-0c56-4627-b004-b42ba744f0fc
  3. введите в браузере: http://%D0%A1%D0%90%D0%99%D0%A2/Pages/ImageFile.ashx?level=%D0%9A%D0%90%D0%A7%D0%95%D0%A1%D0%A2%D0%92%D0%9E%26x=0%26y=0%26tileOverlap=%D0%A0%D0%90%D0%97%D0%9C%D0%95%D0%A0%26id=%D0%98%D0%94%D0%95%D0%9D%D0%A2%D0%98%D0%A4%D0%98%D0%9A%D0%90%D0%A2%D0%9E%D0%A0
            САЙТ — начальный адрес, например: http://82.209.65.104:180
            КАЧЕСТВО — у Евгения стоит в скрипте 10, я делал 13
            РАЗМЕР — у Евгения стоит в скрипте 1024, я делал 9000
            ИДЕНТИФИКАТОР — строка из п.2
    Проверял на пензенском сайте http://82.209.65.104:180
Константин 2015

Комментарий для Дмитрий:

Спасибо, все работает.

Дьёрдь 2015

кто с тобольским/тюменским архивом пробует и кого получилось — напишите плз как надо допилить скрипт.

Дмитрий 2015

С самарским мой предыдущий пример не работает, похоже в dxo.itemsValue, хранится не GUID, что-то похожее на base64.
Возможно автор в курсе? Подскажет...

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Дмитрий:

Пока временно по архивам не работаю, так что не могу сказать что там произошло.

Дмитрий 2015

Комментарий для Евгения Степанищева:

Жаль.
Сам бы разобрался... по тем сведениям, из которых Вы черпаете свои идеи.
Не хватает исходников ;)

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Дмитрий:

У меня нет каких-то сведений из которых я черпаю идеи. Это всё догадки и эксперименты.

Дмитрий 2015

Комментарий для Евгения Степанищева:

Приношу извинения, если вдруг обидел!
Но подскажите мне насчёт устройства АИС, а именно как Вы получили адрес Pages/ImageFile.ashx и его параметры:
level, x, tileOverlap, id?
Какое-то средство отладки использовано?

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Дмитрий:

Приношу извинения, если вдруг обидел!

Нет, я вовсе не обиделся.

Но подскажите мне насчёт устройства АИС, а именно как Вы получили адрес Pages/ImageFile.ashx и его параметры:
level, x, tileOverlap, id?

Смотрел код страницы.

Какое-то средство отладки использовано?

Обычный браузер.

Евгений Степанищев (bolknote.ru) 2015

Комментарий для Дмитрий:

http://bolknote.ru/all/4296