Перейти к содержимому
Калькуляторы

Опубликована Процедура блокировки некошерной инфо

Теперь так:

 Traceback (most recent call last):
 File "zapret_checker.py", line 7, in <module>
   from zapretinfo import ZapretInfo
 File "/zapret/zapretinfo.py", line 7, in <module>
   import suds
ImportError: No module named suds

 

Установите python-suds

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

>> Обычно 5-10 минут хватает на обработку запроса.

по моей статистике, время на получение каждой выгрузки - от 5 до 30 минут

(у меня начальное 5-минутное ожидание и максимум 10 попыток с 5-минутными интервалами)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Теперь так:

 Traceback (most recent call last):
 File "zapret_checker.py", line 7, in <module>
   from zapretinfo import ZapretInfo
 File "/zapret/zapretinfo.py", line 7, in <module>
   import suds
ImportError: No module named suds

 

Установите python-suds

 

 

Спасибо, скрипт стартанул.

Но в выгрузке вот что:

 

2015-03-09 13:24:13,627  Starting script.
2015-03-09 13:24:13,627  Check if dump.xml already exists.
2015-03-09 13:24:13,627  dump.xml does not exist
2015-03-09 13:24:13,627  Check if dump.xml has updates since last sync.
2015-03-09 13:24:13,705  dump.xml has changed.
2015-03-09 13:24:13,705  Sending request.
2015-03-09 13:24:13,743  Checking request status.
2015-03-09 13:24:13,743  Got code f970b093eba9ba2fdda42cdc83bfbce9
2015-03-09 13:24:13,744  Trying to get result...
2015-03-09 13:24:13,777  Not ready yet. Waiting for a minute.
2015-03-09 13:25:13,778  Trying to get result...
2015-03-09 13:25:13,810  Not ready yet. Waiting for a minute.
2015-03-09 13:26:13,811  Trying to get result...
2015-03-09 13:26:14,062  неко▒~@▒~@ек▒~Bное зна▒~Gение Э▒~_ (ин▒~Dо▒~@ма▒~Fи▒~O по об▒~@а▒~Bной ▒~Aв▒~Oзи дл▒~O ▒~@аз▒~@е▒~Hен▒
2015-03-09 13:26:14,062  Script stopped.

 

Какое-то некорректное значение чего-то... это когда в UTF-8 смотришь. Если в KOI, то вообще нечитаемо.

 

Дважды получил такое:

Traceback (most recent call last):
 File "zapret_checker.py", line 57, in <module>
   if max(session.getLastDumpDateEx().lastDumpDate, session.getLastDumpDateEx().lastDumpDateUrgently) / 1000 <> fromFile:
 File "/zapret/zapretinfo.py", line 25, in getLastDumpDateEx
   result = client.service.getLastDumpDateEx()
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 542, in __call__
   return client.invoke(args, kwargs)
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 602, in invoke
   result = self.send(soapenv)
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 649, in send
   result = self.failed(binding, e)
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 708, in failed
   raise Exception((status, reason))
Exception: (408, u'Request Timeout'

Изменено пользователем ayf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

sanitar666, вы скрипт скачали или текст скопировали? Это ж питон, в нем отступы играют роль.

Благодарю, уважаемый телепат )

 

2015-03-09 13:26:14,062 неко▒~@▒~@ек▒~Bное зна▒~Gение Э▒~_ (ин▒~Dо▒~@ма▒~Fи▒~O по об▒~@а▒~Bной ▒~Aв▒~Oзи дл▒~O ▒~@аз▒~@е▒~Hен▒

там написано Некорректное значение ЭП - это говорит о том, что у вас есть расхождение между подписанным файлом и файлом запроса. Вы возможно изменили файл request.xml после подписания, вот хэш и не сходится. И похоже файл у вас UTF8.

Изменено пользователем sanitar666

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы возможно изменили файл request.xml после подписания, вот хэш и не сходится.

А возможно файл где-то по дороге в текстовом режиме скопировался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

там написано Некорректное значение ЭП - это говорит о том, что у вас есть расхождение между подписанным файлом и файлом запроса. Вы возможно изменили файл request.xml после подписания, вот хэш и не сходится. И похоже файл у вас UTF8.

 

<?xml version="1.0" encoding="windows-1251"?> 
<request> 
<requestTime>2014-11-07T13:35:33.000+04:00</requestTime> 
<operatorName></operatorName> 
<inn></inn> 
<ogrn></ogrn> 
<email></email> 
</request>

 

Запрос у меня такой, ну за исключением стертых ПД :) Надо что-то менять? В ручном режиме все проходит.

 

Хм... а я что-то не нашел, как там скачивать. Всё копировал. Для скачивания региться надо?

Изменено пользователем ayf

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У кого-нибудь выгрузка с ОСНОВНОГО ресурса идет уже в формате 2.1? А то ругается, хочет 2.0.... а вроде бы уже 10-е марта?

 

yegorov-p, спасибо за добавление параметров к вашему замечательному питонячьему скрипту -- теперь при смене настроек в него лазить руками практически не надо.

 

Хотелось бы реквестнуть еще один ключик -- НЕ распаковывать архивы, а только сохранять result.zip, как получено.

Причины:

  • имена создаваемых дамп-каталогов (дата и время) с учетом непрогнозируемой задержки выгрузок получаются случайными (минуты-секунды). Это усложняет автоматическую их обработку, которую часто проще делать СРАЗУ ЖЕ по получении архива со стандартным именем. А после переименовать для хранения, добавив дату-время в хвост -- не проблема.
  • размер распакованных архивов плавно начинает превышает приличные рамки, за 2 мегабайта некомпактного XML-текста. На мелких девайсах с флэш-памятью рискуем неожидано огрести неприятный отказ по забитию дискового пространства.
  • хранить СТАРЫЕ архивы распакованными большого смысла скорее всего нет. И распаковать нужное при нужде недолго и просто.

 

И один хинт.

Если в журнале работы скрипта ничего не поменяется, то фильтр по слову "Got" выдает из него только самые существенные строки -- когда, по какому запросу и насколько успешно получена выгрузка.

P.S. Размер и контрольную сумму полученного архива желательно бы туда же, в лог "Got it!". Чтоб понимать, что именно получено.

Изменено пользователем Ansy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ansy

с 11 часов по МСК будет 2.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ansy

с 11 часов по МСК будет 2.1

Точно, по МСК же время...

Вручную скачивание предлагает ТОЛЬКО формата 2.1, слить получилось!

 

А вот скрипт обломился :( срочно ищу косяк.

Смена явного указания формата с 2.0 на 2.1 не помогает. Вываливает:

Traceback (most recent call last):
 File "./zapret_checker.py", line 67, in <module>
   request = session.getResult(code)
 File "/home/ansy/zapret/zapretinfo.py", line 70, in getResult
   result = client.service.getResult(code)
 File "build/bdist.linux-i686/egg/suds/client.py", line 539, in __call__
 File "build/bdist.linux-i686/egg/suds/client.py", line 598, in invoke
 File "build/bdist.linux-i686/egg/suds/client.py", line 627, in send
 File "build/bdist.linux-i686/egg/suds/client.py", line 659, in succeeded
 File "build/bdist.linux-i686/egg/suds/bindings/binding.py", line 151, in get_reply
 File "build/bdist.linux-i686/egg/suds/bindings/binding.py", line 204, in replycomposite
Exception: <operatorName/> not mapped to message part
mv: cannot stat ‘result.zip’: No such file or directory

Куды копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Точно, по МСК же время...

Вручную скачивание предлагает ТОЛЬКО формата 2.1, слить получилось!

 

А вот скрипт обломился :( срочно ищу косяк.

Смена явного указания формата с 2.0 на 2.1 не помогает. Вываливает:

Traceback (most recent call last):
 File "./zapret_checker.py", line 67, in <module>
   request = session.getResult(code)
 File "/home/ansy/zapret/zapretinfo.py", line 70, in getResult
   result = client.service.getResult(code)
 File "build/bdist.linux-i686/egg/suds/client.py", line 539, in __call__
 File "build/bdist.linux-i686/egg/suds/client.py", line 598, in invoke
 File "build/bdist.linux-i686/egg/suds/client.py", line 627, in send
 File "build/bdist.linux-i686/egg/suds/client.py", line 659, in succeeded
 File "build/bdist.linux-i686/egg/suds/bindings/binding.py", line 151, in get_reply
 File "build/bdist.linux-i686/egg/suds/bindings/binding.py", line 204, in replycomposite
Exception: <operatorName/> not mapped to message part
mv: cannot stat ‘result.zip’: No such file or directory

Куды копать?

У меня последняя версия скрипта с https://github.com/yegorov-p/python-zapret-info сама качает 2.1 без всяких правок с моей стороны

"2015-03-10T09:19:00+03:00" formatVersion="2.1">

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот скрипт обломился :( срочно ищу косяк.

Смена явного указания формата с 2.0 на 2.1 не помогает. Вываливает:

Traceback (most recent call last):
 File "./zapret_checker.py", line 67, in <module>
   request = session.getResult(code)
 File "/home/ansy/zapret/zapretinfo.py", line 70, in getResult
   result = client.service.getResult(code)
 File "build/bdist.linux-i686/egg/suds/client.py", line 539, in __call__
 File "build/bdist.linux-i686/egg/suds/client.py", line 598, in invoke
 File "build/bdist.linux-i686/egg/suds/client.py", line 627, in send
 File "build/bdist.linux-i686/egg/suds/client.py", line 659, in succeeded
 File "build/bdist.linux-i686/egg/suds/bindings/binding.py", line 151, in get_reply
 File "build/bdist.linux-i686/egg/suds/bindings/binding.py", line 204, in replycomposite
Exception: <operatorName/> not mapped to message part
mv: cannot stat ‘result.zip’: No such file or directory

Куды копать?

аналогичная беда

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Таак, разбираемся.

 

Да, This exception actually means that the answer from SOAP-service contains tag <faultcode>, which doesn't exist in the WSDL-scheme of the service.

 

Keep in mind that suds library caches the WSDL-scheme, that is why the problem may occur if the WSDL-scheme was changed recently. Then the answers match the new scheme, but are verified by the suds-client with the old one. In this case rm /tmp/suds/* will help you.

 

ixi, спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ansy, уточню реквест: имеется в виду - не сохранять архивные дампы вообще?

Про размер и контрольную сумму понял, интересно, сделаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть там засада :) С утра выдавал formatVersion="2.1" но в моём запросе был явно прописан 2.0. С 13МСК сломалось - поправил в перловском скрипте версию выгрузки на 2.1 - всё пошло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Exception: <operatorName/> not mapped to message part

rm /tmp/suds/*

Алилуйя! :) Заработало!

 

Кстати, совершенно неочевидный ход, наверное даже для среднего Python-разработчика... а для НЕпитонщиков так и вообще магия.

 

Отсюда вопросы:

  1. Если это общий случай, то когда применять очистку /temp/suds/ ? При следующей смене схемы получения документа? При каждом изменении "на всякий случай"? В любой момент глюка? Не вредно ли вообще это делать, хотя бы не во время процесса закачки, конечно?
  2. Куда лучше вставить операцию очистки? В сам питонячий скрипт перед запросом, полагаю, нежелательно. А в вышележащий -- свой, вызывающий? Это чтобы не забыть в следующий раз -- где-то надо отложить, зафиксировать решение.
  3. Если скрипт сам изнутри себя способен отследить и пофиксить подобную засаду, то +1 фичреквест... или это багреквест?

А вообще, конечно, с передачей всей этой шняги более технически подкованному ГРЧЦ хотелось бы уже выгружать по HTTPS и пользовать штатные функции типа wget/curl/...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ansy, уточню реквест: имеется в виду - не сохранять архивные дампы вообще?

Вот тут затрудняюсь, пусть народ подскажет.

 

Для разбора полученного архива я использую ТЕКУЩИЙ dump.xml.

А после мне лично нетрудно сделать:

mv result.zip result_`date +%Y%m%d-%H%M`.zip

Но кому-то в другой ОС/окружении так не катит...

 

Может быть, по дополнительному ключу класть стопочкой вот такие вот слегка переименованные архивы, без вложенного дерева каталогов?

 

И кстати, имена файлов-каталогов с пробелами внутри приходится при обработке экранировать, поэтому IMHO удобнее хотя бы знак подчеркивания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вообще, конечно, с передачей всей этой шняги более технически подкованному ГРЧЦ хотелось бы уже выгружать по HTTPS и пользовать штатные функции типа wget/curl/...

 

Из облака ската можно и так забирать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коллеги, подскажите, с чем все же связан такой вывод работы питонячьего скрипта:

 

Traceback (most recent call last):
 File "zapret_checker.py", line 57, in <module>
   if max(session.getLastDumpDateEx().lastDumpDate, session.getLastDumpDateEx()                                                                                                                                                             .lastDumpDateUrgently) / 1000 <> fromFile:
 File "/zapret/zapretinfo.py", line 25, in getLastDumpDateEx
   result = client.service.getLastDumpDateEx()
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 542, in __c                                                                                                                                                             all__
   return client.invoke(args, kwargs)
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 602, in inv                                                                                                                                                             oke
   result = self.send(soapenv)
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 649, in sen                                                                                                                                                             d
   result = self.failed(binding, e)
 File "/usr/local/lib/python2.7/site-packages/suds/client.py", line 708, in fai                                                                                                                                                             led
   raise Exception((status, reason))
Exception: (408, u'Request Timeout')

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С тем, что сайт РКНа падает.

 

Ansy, кэш надо чистить каждый раз, когда обновляется схема.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

так ведь врут, нету в реестре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

так ведь врут, нету в реестре.

Есть. Только не официальный домен. Кто-то короткий слил, который в зоне .re

Подстроку "lurk" поищите в файле, найдется.

 

P.S. Возможно это не то, что имелось ввиду, ибо открытый http. Зато аж 4 вхождения -- два IP и два URL.

И у кого по IP или домену вдруг стало блочиться -- https тоже закроет, наверное отсюда и эффект?

Изменено пользователем Ansy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С тем, что сайт РКНа падает.

 

Пересоздал файл запроса и подписи. Все равно выдает вот то "некорректное значение". :( В ручном режиме все ок :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С тем, что сайт РКНа падает.

 

Пересоздал файл запроса и подписи. Все равно выдает вот то "некорректное значение". :( В ручном режиме все ок :(

Видимо они стали проверять параметры запроса version-id. Я уже отписался - выпала одна выгрузка, поправил версию на 2.1 - всё работает, но у меня perl... Версия не в коде запроса, а в самом запросе - доппараметр.

 

Для перла примерно так

my @sendresult = $service->sendRequest

$xmlreq,

$xmlreqsig,

"2.1"

);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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