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

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

Архив ЦГАСО несколько изменил у себя вёрстку и предыдущий способ скачивания работать перестал. Сегодня мне понадобились документы из этого архива, пришлось посмотреть в чём дело.

Для того, чтобы скачать листы дела, вам нужно в браузере (настоятельно рекомендую «Хром», в других браузерах я код не испытывал) перейти в раздел «Требования дел» и открыть на просмотр нужное вам дело (для этого нужно нажать на значок «книжки» в колонце «Действие»).

Когда дело откроется, нужно открыть панель разработчика (открывается по Ctrl+Alt+I на «Виндоузе» или Cmd+Alt+I на «Маках») и там перейти во вкладку «Консоль» (Console). В этой вкладке вставить нижеприведённый код и нажать «Энтер».

Начнётся пролистывание документа. Запаситесь терпением. Как только оно закончится, на экране появится длинная строка, как на скриншоте ниже. Её надо скопировать в файл целиком.

Далее, увы, вам придётся занять компилированием. Как это делается, рассказывать не буду, ищите в интернете. Вам понадобится программа cgodownloader.go из моего репозитория, её надо сохранить к себе на диск и скомпилировать (она написана на Гоу). Ей на вход надо передать имя файла (в моём случае это 150-1-120) и директорию, куда будут сохраняться картинки листов дела (у меня это 150-1-201-pict):

Когда программа закончит работу, в указанном вами директории будет лежать дело целиком.

Спасибо огромное! Ждал, и таки дождался этого поста!)))

В winxp, win7 если страниц несколько тысяч хром валится в диапазоне 500-700 страницы с ошибкой. В Mint 17 еще попробую До 400-500 свободно проглатывает От меня тоже огромное спасибо

Большое Вам спасибо!

Кстати да, после 500 страницы хром почему-то виснет напрочь.

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

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

«Винды» у меня нет, поэтому сказать почему виснет я, увы, не могу.

p.s В Minte дело 2700 листов хром завис напрочь после 920 стр. Я так понимаю не хватает памяти В xp увеличил файл подкачки освободил больше места на с: — ноль эмоций

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

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

Очень странно, 2700 значений это не очень-то много. Можно вот так попробовать:

Так как?:) Я заинтригован, а коммент не дописан.

Оперативку просто адово ест, кстати.

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

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

Так как?:) Я заинтригован, а коммент не дописан.

Как не дописан? Там код приведён.

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

Если у Вас Мозилла с Noscript, то разрешите pastebin.com, сам только что разобрался.

Ну у меня это вот так вот выглядит — кода не вижу.

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

Вот именно что в трех браузерах просмотрел, антивирус отрубил и все равно ничего не видно. и носкрипта у меня нет. Заговор какой-то:)))

Все — нашел в коде страницы ссылку на пастбин. Сейчас буду пытаться туда зайти.

А он не работает — видимо, временные неполадки.

Константин, новый скрипт помог решить проблему?

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

К сожалению, самое длинное дело на сегодня — 153 листа, постараюсь проверить на след. неделе. Скрипт рабочий.

В xp пробовал с новым скриптом, с обновленным флешем (выскакивало окошко обновления), с новым профилем в хроме, запускал прогу очистки памяти (сначала вроде бы помогало, но потом физическая память приблизилась к 99% и 3,4гб и снова завис браузер) — бестолку

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

Если увижу у себя проблему, буду править. Но у меня не Виндоуз, проблем пока не наблюдаю.

На компе с 8 гб оперативки все скачалось — видимо, дело в ее объеме и прожорливости скриптика:)

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

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

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

у меня в хроме после ввода скрипта в консоль пишет просто true. тобольский архив. у кого-нибудь пробовал на тобольском?

Плохо знаю JS, но может быть проще понять как по странным значениям из dxo.itemsValue (которые похожи на base64) получить ту GUID, которые на самом деле имена файлов с листами из дел?

Я немного покопался в коде. Видно, что такие псевдо-base64 там используются массово. Не только для сокрытия имён файлов. Если посмотреть на эти строки псевдо-base64 (например ’QNy9j9FDYhfSNXZw4XiMvt7tql8kfe+LcsnM7XIDbd/gHLlYD6Lm2g==’), то видно, что набор символов не отличается от стандартного base64. Причём все такие строки равны 56 байтам. Исходя из того, что base64 кодирует как 4:3 видно, что исходная строка равна 42 байтам. Если принять во внимание финальные == (добавленные для выравнивания), то на самом деле исходная строка всего 40 байт. Что сильно больше GUID, который надо закодировать (16 байт или 32 байта если записывать хексами или 36 байт если считать и разделители).

Я сравнил несколько GUID и соответствующие им псевдо-base64-строки. Между ними явно нет соответствия. То есть это не base64 с заменой символов. Тут или просто использование большого словаря соответствий между GUID (именами файлов) и псевдо-base64-строками. И тогда никакой закономерности и не будет. Или же кодируется GUID, разбавленный по неизвестному алгоритму каким-то мусором.

Не пробовали понять как генерируется код страницы при переходе на другой лист? Многие функции обфусцированы и под отладчиком ходить не очень удобно. Но может быть есть там где-то функция, преобразующая псевдо-base64-строку в GUID? Или же такое преобразование делается через вызов какой-то функции с сервера? Тогда сам алгоритм преобразования нам и не нужен, достаточно дёргать соответствующую серверную функцию и не придётся листать всё дело.

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

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

Не пробовали понять как генерируется код страницы при переходе на другой лист?

Нет, не пробовал.

Всем привет! Значит решил я применить Вашу схему к Тюменскому архиву http://109.233.229.20:81/Pages/Main.aspx Схема незаработала на этапе компиляции, создала кучу джпегов, которые по сути были html с информацией об ошибке. Начал изучать код, и понял, что строка запроса несколько отличается от исходной, да и хост не тот. Было: const url = ` http://%s/Pages/ImageFile.ashx?level=10%26x=0%26y=0%26tileOverlap=1024%26id=%s%26page=0%26XHDOC=%26archiveId=1%60 const defaulthost=«cgaso.regsamarh.ru» Сделал: const url = ` http://%s/Pages/ImageFile.ashx?level=10%26x=0%26y=0%26tileSize=256%26tileOverlap=1%26id=%s%26page=0%26rotation=0%60 const defaulthost=«109.233.229.20:81» В итоге качались только первые куски с координатами по х/у 0/0. А потом и вообще сайт архива застрелился. =) Service Unavailable HTTP Error 503. The service is unavailable. Подождём-с когда поднимут, да послушаем мнение авторитетных товарищей. Что скажите?

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

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

Лично я — ничего не скажу. Тюменский архив я не использую и не планирую.

Уважаемый bolknote.ru, если взялся за гуж, не говори что не гуж, не набивай себе цену, не к лицу, скажи в личку, что надо, и сделай для Тюмени, мне жалко времени своего для копирования(принкринов), у меня 6 деревень, в каждой деревне по 10 книг, и это мое древо, и злого умысла не вижу, пишу в фейсбук, не отвечаешь. Ведь главное в жизни это результат, а его пока нет, только куски и никакой конкретики, удали тогда свой пост, смысл с него, если ничего не понятно, а желания объяснить нету, проблему не в том, что народ тупой, проблема в том, что наставник из тебя никудышный.. Evgesha(scorpion_dev@mail.ru)

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

Комментарий для Evgesha(scorpion_dev@mail.ru):

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

Что за бред? Почему я должен в своём блоге что-то удалять?

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

Нда, грубовато конечно Евгеша =) И всё же, я думаю принцип работы в обоих архивах одинаковый, так как один и тот же софт у них стоит. Евгений, хотел вас попросить глянуть, что я не так делаю. Общая картинка состоит так же из кусков с координатами x / y Но у меня почему то скачивается только первый кубик с координатами 0/0, а приклеивания других кусочков не происходит. НО, разобрался сам =) Спасибо. Вот только не пойму зачем они собирают мозайку из кучи мелких обрезков одного и того же файла, ведь по сути обращаются к одной и той же картинке. Они сами себе сервер перегружают запросами, только ради того, что бы запутать людей =)

Volhvuk если получилось, помоги другим, про кубики с координатами, давно увидел, и вина тому насколько понял не архив и ПО, а браузеры, чтобы наоборот увеличить скорость загрузки, за счет многопоточности. А на счет высказывания это не грубо, а правда, не люблю лебезить, Искренне считаю, если человек знает, всегда скажет что не так, хоть ночью разбуди, а здесь одна показуха, я разработчик, но типа я не консультирую, да бред это, Вот если я сейчас знаю, то и могу рассказать свободно. как и чего достиг: Операционная система Windows профессионал, 7, 64 Зашел на сайт архива http://109.233.229.20:81/%28%D1%83 меня есть предварительная регистрация) выбрал архив с 5 листами(маленький для пробы) На ПК уже предварительно установлен ХРОМ, согласно требованиям разработчика Из поста > Как скачать документ из АИС ЦГАСО-3 скопировал текст программы и выполнил рекомендации

Когда дело откроется, нужно открыть панель разработчика (открывается по Ctrl+Alt+I на «Виндоузе» или Cmd+Alt+I на «Маках») и там перейти во вкладку «Консоль» (Console). В этой вкладке вставить нижеприведённый код и нажать «Энтер».

получил данные, сохранил файл Взял из репозитория, указанного в этом же посте взял программу и файлы, скачал в отдельную папку Установил GO? а далее как раз затык, что надо сделать Вот о чем речь

Далее, увы, вам придётся занять компилированием. Как это делается, рассказывать не буду, ищите в интернете. Вам понадобится программа cgodownloader.go из моего репозитория,

а вот далее все опять более менее понятно скачиваем программу и устанавливаем Sublime Text 3 открываем cgodownloader.go,через правую кнопку мыши правим строки согласно поста Volhvuk

Значит решил я применить Вашу схему к Тюменскому архиву http://109.233.229.20:81/Pages/Main.aspx Схема незаработала на этапе компиляции, создала кучу джпегов, которые по сути были html с информацией об ошибке. Начал изучать код, и понял, что строка запроса несколько отличается от исходной, да и хост не тот. Было: const url = ` http://%s/Pages/ImageFile.ashx?level=10%26x=0%26y=0%26tileOverlap=1024%26id=%s%26page=0%26XHDOC=%26archiveId=1%60 const defaulthost=«cgaso.regsamarh.ru» Сделал: const url = ` http://%s/Pages/ImageFile.ashx?level=10%26x=0%26y=0%26tileSize=256%26tileOverlap=1%26id=%s%26page=0%26rotation=0%60 const defaulthost=«109.233.229.20:81»

в этой строке пишется размер шрифта и разрешение, 10 и 1024 соответственно

А вот дальше я не знаю, раз владелец не хочет консультировать, жду жаждущих, чтобы совместно одолеть этого зверя

В общем всё оказалось просто. В коде автора, дай бог ему здоровья, нужно исправить: « http://pastebin.com/raw.php?i=VamLswki%22

В общем всё оказалось просто. В коде автора, дай бог ему здоровья, нужно исправить: « http://pastebin.com/VamLswki%22

Одно не пойму, почему после долгого сканирования, при попытке скачать у них вылетает ресурс, у них и заодно архив Тобольской области, видимо они на одном сервере. Не хочется доставлять работникам архива неудобства.

И ещё, уважаемый Евгений, подскажите пожалуйста, ваша программа качает в несколько потоков одновременно? Можно регулировать количество потоков, например сделать равным 1 ?

bolknote.ru (bolknote.ru) > Volhvuk (инкогнито)

Программа отработала, но файлы в директории не появились

C:\gopath>go run cgodownloader.go -dir=pikt-150-1-124 150-1-124 C:\gopath>

Во первых. Вы неправильно компилируете. Сначала нужно скомпилировать и создать исполняемый файл *.exe. Во вторых скармливать нужно строкой вида: C:\gopath>cgodownloader.exe -dir=pikt-150-1-124 150-1-124.html (или txt)

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

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

И ещё, уважаемый Евгений, подскажите пожалуйста, ваша программа качает в несколько потоков одновременно? Можно регулировать количество потоков, например сделать равным 1 ?

Да, можно. По-умолчанию, работает на скачивание количество потоков (горутин) равное удвоенному количеству процессоров. Это строка N := runtime.NumCPU() * 2. Замените её на N := 1

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

Спасибо! А то я чувствую, что 16 потоков многовато =)

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

Евгений поясни, почему иногда после запуска, сохраняются только названия файлов, с размером 0, а иногда, этот же файл сохраняется нормально

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

Комментарий для Evgesha(scorpion_dev@mail.ru):

Поддержкой программы я не занимаюсь.

Пробовал на последней версии Хром на разных машинах. Доходит до 40-70 страницы и вываливается с вот этим:

POST https://cgaso.regsamarh.ru/Pages/Requests/Requests.aspx net::ERR_INSECURE_RESPONSEH.w.executeRequest @ ScriptResource.axd?d=UwZdykvJ1Xe6QfXcN3F1R3gGc_gMBTkCcJwWrjeRpp5yJy3w6LEhf7yQOyMm2w-Ma6WM5tLUr9mUJ7…:2H.w.executeRequest @ ScriptResource.axd?d=UwZdykvJ1Xe6QfXcN3F1R3gGc_gMBTkCcJwWrjeRpp5yJy3w6LEhf7yQOyMm2w-Ma6WM5tLUr9mUJ7…:2H.w.invoke @ ScriptResource.axd?d=UwZdykvJ1Xe6QfXcN3F1R3gGc_gMBTkCcJwWrjeRpp5yJy3w6LEhf7yQOyMm2w-Ma6WM5tLUr9mUJ7…:2e._onFormSubmit @ ScriptResource.axd?d=4vAt_xqb4u1-ppH5IZUmbY0UYljj5vFL8pDcT6ztrTIjXVn5-WXjl3aYFmAXZTxvLO8mQqrxnmdkOw…:2(anonymous function) @ ScriptResource.axd?d=UwZdykvJ1Xe6QfXcN3F1R3gGc_gMBTkCcJwWrjeRpp5yJy3w6LEhf7yQOyMm2w-Ma6WM5tLUr9mUJ7…:2g @ ScriptResource.axd?d=UwZdykvJ1Xe6QfXcN3F1R3gGc_gMBTkCcJwWrjeRpp5yJy3w6LEhf7yQOyMm2w-Ma6WM5tLUr9mUJ7…:2(anonymous function) @ VM320:21 ScriptResource.axd?d=4vAt_xqb4u1-ppH5IZUmbY0UYljj5vFL8pDcT6ztrTIjXVn5-WXjl3aYFmAXZTxvLO8mQqrxnmdkOw…:2 Uncaught Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 0 Resource interpreted as Image but transferred with MIME type text/html: « https://cgaso.regsamarh.ru/Pages/ImageFile.ashx?level=7%26x=0%26y=0%26tileSize=99999%26tileOverlap=1%26id=925235a0-f725-4c1a-ac96-965e65b736df%26page=0%26rotation=0%22​. Resource interpreted as Image but transferred with MIME type text/html: » https://cgaso.regsamarh.ru/Pages/ImageFile.ashx?level=10%26x=0%26y=0%26tileSize=9%E2%80%A699%26tileOverlap=1%26id=9eb50428-36f4-41d7-ac31-d22122469d01%26page=0%26rotation=0%22​. /Pages/ImageFile.ashx?level=8&x=0&y=0&tileSize=99999&tileOverlap=1&id=925235a0-f725-4c1a-ac96-965e65b736df&page=0&rotation=0:1 GET https://cgaso.regsamarh.ru/Pages/ImageFile.ashx?level=8%26x=0%26y=0%26tileSize=99999%26tileOverlap=1%26id=925235a0-f725-4c1a-ac96-965e65b736df%26page=0%26rotation=0 net::ERR_INSECURE_RESPONSE Resource interpreted as Image but transferred with MIME type text/html: « https://cgaso.regsamarh.ru/Pages/ImageFile.ashx?level=9%26x=0%26y=0%26tileSize=99999%26tileOverlap=1%26id=925235a0-f725-4c1a-ac96-965e65b736df%26page=0%26rotation=0%22​. /Pages/ImageFile.ashx?level=10&x=0&y=0&tileSize=99999&tileOverlap=1&id=925235a0-f725-4c1a-ac96-965e65b736df&page=0&rotation=0:1 GET https://cgaso.regsamarh.ru/Pages/ImageFile.ashx?level=10%26x=0%26y=0%26tileSize=9%E2%80%A699%26tileOverlap=1%26id=925235a0-f725-4c1a-ac96-965e65b736df%26page=0%26rotation=0 net::ERR_INSECURE_RESPONSE

что бы это могло быть?

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

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

«На последней версии Хрома», а не «Хром».

Что это такое — сказать трудно, судя по ошибке, сработала какая-то защита безопасности в браузере. Если столкнусь с этой ошибкой — разберусь, по описанию, увы, не скажу что это.

Ну да, у меня ляпы бывают.

Проверил в Firefox: стоит, как статуя, страницы не листает. В Опере — работает!

Иногда встречаются дела, где число файлов в списке больше числа страниц. Глюк какой-то. Вот на них скрипт бесконечно ходит по кругу и массив для скармливания скачивателю не формирует.

Жрет физич. память не скрипт. В Win.7, Chrome при генерации изображений ЭЛАРом каждое последующее изображение сохраняет в оперативку. Это легко проверить. не запуская скрипт прощелкать 1000 изображений в ручную :-) и у Вас хром так-же вылетит с ошибкой.

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

📎📎📎📎📎📎📎📎📎📎