Как скачать документ из АИС ЦГАСО
Изучаю тут самарский электронный архив, который сделан в «Эларе». Насколько я понял, продукт называется АИС ЦГАСО. Убиваю сразу двух зайцев — разбираюсь как всё работает и пытаюсь найти нужные мне документы по родственникам.
Ребята из «Элара» молодцы, делают очень нужное дело — оцифровывают бумажные архивы, это невероятный труд, но, к сожалению, интерфейс просмотра документов оставляет желать лучшего, он мне сжёг массу нервов. Решил просто выкачать нужные мне документы на компьютер и дело с концом. Написал специальную программу для скачивания документов из АИС ЦГАСО, на Гугл Гоу. Получилось довольно компактно.
Основная фишка — паралельное скачивание документов в несколько потоков. Не уверен, что это действительно работает (я не до конца понимаю как Гоу переключает свои горутины), но в теории должно. Добавлено: «полевые испытания» подтвердили, что документы действительно скачиваются параллельно. Удалось сделать крайне просто:
ch := make(chan byte, N)
for i, id := range documents {
ch <- 1
go func(id string, index int) {
name := padZero5(strconv.Itoa(index)) + ".jpg"
copyUrlToFile(strings.Replace(url, `%id`, id, 1), *dir + "/" + name)
<-ch
}(id, i)
}
Первой строкой в коде создаётся канал заданной размерности. С ним будут работать горутины (это такие легковесные потоки Гоу). В него можно положить только N значений, после чего следующая операция записи будет ждать его освобождения. С помещением в канал каждого нового значения, запускается горутина для скачивания одного листа документа, как только горутина отработала, она убирает из канала одно значение и цикл основного потока снова его кладёт и запускает новую горутину.
В итоге, одновременно, не будет запущено более N горутин.
Пользоваться программой просто (если кому-нибудь кроме меня это надо) — нужно в браузере (я в «Хроме» пробовал, выбирать при сохранении надо формат «веб-страница полностью») перейти на чтение документа (на снимке экрана иконка книжки рядом с каждым документом), когда загрузится первая страница документа, сохранить текущий документ браузера на диск (Ctrl+S в Винде, ⌘+S на «Маке») и скормить его программе в командной строке:
go run cgodownloader.go скачанный-файл.html
Программа обработает документ, покажет сколько страниц найдено и начнёт их скачивать в виде больших джпегов в ту же папку, показывая их имена. У меня на большом документе (около 1,5 тысяч страниц) заняло прилично времени — час с лишним.
Зато теперь просматривать удобно.
здравствуйте.
А можно реализовать чтобы скачивал, только определенный диапазон листов. Например с 100 по 200.
Комментарий для Никита:
Добрый день! Можно.
А как сделать?
Комментарий для Никита:
Выучить язык программирования Гоу ( http://golang.org ) и запрограммировать.
Добрый день! Подскажите как запустить вашу программу?
Комментарий для Евгений:
Добрый день!
Взять компилятор языка Гоу, скомпилировать программу, запустить.
Подскажите каким компилятор пользуетесь Вы?
При компилировании выдает вот такую ошибку:
-dir=».«: directory to output.
-host=«cgaso.regsamarh.ru»: address of e-archive
Подскажите в чем дело.
Комментарий для Евгений:
Я пользуюсь компилятором, который скачал с golang.org.
При компилировании или запуске?
При компилировании
Если вас не затруднит не могли бы вы выложить подробную инструкцию как скомпилировать и запустить вашу программу желательно со скринами. Очень нужно. Заранее благодарен.
Комментарий для Евгений:
Доброй ночи! Под какую операционную систему? Если под Виндоуз, то у меня её просто нет.
Добрый день! Под Linux.
Комментарий для Евгений:
Линукса у меня тоже нет. Вообще, компиляция программ на Гоу это одна строка — go build имяпрограммы
Здравствуйте!
А вы не можете сделать, чтобы можно скачивать только определенный диапазон страниц или отдельные страницы?
Комментарий для Никита:
Здравствуйте!
Я могу, но не буду, нет пока времени на это.
Есть надежда, что сделаете?
Комментарий для Никита:
Всё может быть.
Комментарий для Евгения Степанищева:
Добрый день! Благодарю за отличную программу. После танцев с бубном программа заработала на Windows. Я пробовал на Тобольском архиве выбрал документ, программа показала 300 страниц, начала скачивать. После завершения оказалось, что большинство джипегов имеют нулевой размер т. е. только закачались ярлыки. Почему так не могу разобраться. Помогите пожалуйста.
Комментарий для Евгений:
Увы, Windows у меня нет. На самарском архиве, под Mac OS работает всё нормально. Возможно тобольский архив имеет особенности или он отдаёт документы чересчур медленно, например. Не знаю.
Добрый день. Подскажите пожалуйста что нужно исправить в программе чтобы по умолчанию был адрес тобольского архива.
Комментарий для Евгений:
Добрый день! Не подскажу.
Комментарий для Евгения Степанищева:
Спасибо, почти работает.
А как ограничить число потоков? На не сильно быстром инете получается, что часть файлов не скачивается целиком, полагаю, уменьшение нагрузки на канал должно помочь. Многопоточность это, конечно, хорошо, не не столь обязательно — в любом случае получится быстрее, чем просматривать дела напрямую из системы.
Комментарий для Сергей Андреев:
Ключа отдельного нет. В 61-й строке можно переменной N присвоить значение 1, будет одна го-рутина (это не поток, хотя в чём-то похоже).
Комментарий для Евгения Степанищева:
С хостов 109.233.224.234:83 и 109.233.224.234:81 еще неделю назад хотя бы частично скачивал теперь вообще не качает. Не понятно то ли с серверами что то, то ли защиту придумали.
После работ по подключению к госуслугам цгасо все отвалилось. Скачивает только куски 300 на 300 вместо полной страницы.
Комментарий для Григорий:
Это вы про какой архив?
Самарский архив
да, теперь качает всякий мусор вместо нужных файлов
Комментарий для Сергей Андреев:
Мда, печаль. Когда в следующий раз понадобятся документы, буду смотреть что случилось.
Комментарий для Евгения Степанищева:
Здравствуйте, сегодня вообще выдет такую ошибку...
[URL= http://radikal.ru/fp/002e6a83c5bb4c5ea7c363c2cb877947%5D%5BIMG%5Dhttp://s010.radikal.ru/i313/1311/b6/b8374d56a3ebt.jpg%5B/IMG%5D%5B/URL%5D
В коде ссылка идет на Pages/ImageFile.ashx, а сейчас на http://cgaso.regsamarh.ru/Pages/Requests/Requests.aspx.... может быть и в этом проблема
Комментарий для Григорий:
Это баг в компиляторе. Возможно вы обновили его недавно. Только зачем вы какие-то странные слова вокруг адреса картинки понаписали?
Всё может быть. Пока не могу посмотреть в чём дело, времени нет.
Комментарий для Евгения Степанищева:
Возможно после НГ свободный доступ к просмотру будет закрыт, поэтому лучше не оттягивать)
Комментарий для Петр:
Как это? Разве не государство выделило деньги на оцифровку? С чего теперь доступ к нему будет закрыт, если это на наши налоги делалось?
Не закроют, а введут оплату за доступ:
http://forum.vgd.ru/615/53595/0.htm?a=news_view%26o=
2Петр: а откуда ветер дует таких конкретных предположений, можно поподробнее?
2Евгений & Григорий. Видимо, отключили tilesize=25600, теперь только сшивать...
Комментарий для Аркадий:
Ну так я и написал, что свободный доступ закроют, совсем-то его не закроют.
А поподробнее нет ничего, сам только так и слышал.
Чушь! Про самарский архив:
*единый портал государсвенных услуг
2Григорий: Это и есть переход на механизм для дальнейшей реализации оплаты. Вы мою ссылочку-то внимательно читали?
Комментарий для Евгения Степанищева:
Евгений, сначала скачивались квадратики 300*300, а теперь в файлики *.jpg пишется текст об ошибке, что сервер не выполнил запрос. Раньше по PrintScreen экран копировался без звука, теперь же выдается запрос-предупреждение, что использование по согласованию с архивом. После этого все копируется в буфер как обычно. Не связана ли неработоспособность именно с этим?
Комментарий для Ку:
Видимо защищаются от скачиваний. PrintScreen и нескачивание картинок друг с другом связаны только опосредованно — следствия попыток защитить информацию.
Комментарий для Евгения Степанищева:
Опосредованно или при попытке получить картинку выдается запрос, на который программулина не может дать ответ, а человек может?
Евгений, здравствуйте!
ЭЛАР обновил ПО и программка само собой не работает. Есть ли возможность сделать ее рабочей или все, лавочка закрыта?
Спасибо.
Комментарий для Андрей:
Добрый вечер!
Пока времени нет. Если появится, попробую доделать!
Комментарий для Ку:
Нет, просто данные по-другому лежат.
Подпилил, стала работать: http://bolknote.ru/all/4103
Нужны срочно записи с Тобольского архива, сколько будет стоить?
Комментарий для Стас:
Это ко мне что ли обращение? Спасибо, но мне ничего не нужно, качайте сами.
Это обращение ко всем!!!
Я просто не шарю в этих языках программирования!!! А записи срочно нужны, чтобы не ехать в Тобольск и для заказчиков!!!
Поэтому и предлагаю, чтобы кто-то скачал мне эти записи в хорошем качестве, естественно не бесплатно!!!
Кто сможет это сделать пишите на почту (FusionS87117@yandex.ru) или здесь пишите!!!
Евгений здравствуй! Раньше с самарского архива можно было сохранять изображения (файлы) на компьютер, а сейчас там сделали только просмотр без возможности сохранить. Конечно вкладка «Сохранить картинку как» осталась, но сохраняется только тот фрагмент (часть картинки), на который указывал курсор мыши. Я звонил им туда, они сказали, что сделали так специально и что все теперь платно, они могут прислать документ в электронном виде, но лист стоит 40-50 рублей. Как обойти эту проблему? Как сохранить картинку полностью в высоком качестве (разрешении) ? Помогите пожалуйста, потомучто никто мне так и не смог помочь.
Добрый вечер, Сергей!
В самарском архиве у меня уже интересов, поэтому помочь не могу.
Здравствуйте! А делать, если программа выдает ошибку «Error: <to> cannot be less than <from>»?
Доброе утро! Программа давно не работает — архив что-то у себя изменил.
Архив перешел на HTTPS по этому программа не работает.
Если кого ещё интересует вопрос выкачки целых дел с АИСов — пишите в личку.