Выгрузка списка списка запрещенных сайтов с Единого Реестра
|
|
vad | Дата: Четверг, 13.02.2014, 13:23 | Сообщение # 46 |
Барнаул
Группа: Проверенные
Сообщений: 223
Репутация: 17
Статус: Offline
| Видел. Посмотрю что случилось и отпишусь.
|
|
| |
FreeMadMan | Дата: Вторник, 22.04.2014, 16:59 | Сообщение # 47 |
Группа: Проверенные
Сообщений: 2
Репутация: 4
Статус: Offline
| vad, доброго времени суток, наткнулись в поиске на ваш чудесный скрипт, пытаемся заставить его работать, не поможете ли с проблемой. Я признаюсь не опытен в *nix системах, но я сейчас после получения в конце Got it, а до этого тонны крякозябр не знаю где искать результат всё этой операции.
|
|
| |
vad | Дата: Среда, 23.04.2014, 10:11 | Сообщение # 48 |
Барнаул
Группа: Проверенные
Сообщений: 223
Репутация: 17
Статус: Offline
| В той же папке откуда запускали скрипт должен лежать результат - zip файл со списком запрещенных сайтов. Командой ls -al можно посмотреть что в папке этой находится (аналог в windows команды DIR).
|
|
| |
FreeMadMan | Дата: Среда, 23.04.2014, 12:14 | Сообщение # 49 |
Группа: Проверенные
Сообщений: 2
Репутация: 4
Статус: Offline
| Всё заработало! Ура. Код #!/usr/bin/env python # -*- coding: utf-8 -*-
import suds import base64 import time import zipfile
API_URL = "http://www.zapret-info.gov.ru/services/OperatorRequest/?wsdl" XML_FILE_NAME = "/usr/src/reestr/request.xml" SIG_FILE_NAME = "/usr/src/reestr/request.xml.sign"
def getLastDumpDate(): ##Проверка последнего изменения файла на сервере client = suds.client.Client(API_URL) result=client.service.getLastDumpDate() return result
def sendRequest(requestFile,signatureFile): # Формируем и отправляем запрос на файл, в ответе код file = open(requestFile, "rb") # входные параметры фаил xml и подпись файла data = file.read() file.close() xml = base64.b64encode(data)
file = open(signatureFile, "rb") data = file.read() file.close() print data sign = base64.b64encode(data) client = suds.client.Client(API_URL) result=client.service.sendRequest(xml,sign)
return dict(((k, v.encode('utf-8')) if isinstance(v, suds.sax.text.Text) else (k, v)) for (k, v) in result)
def getResult(code): # скачиваем фаил client = suds.client.Client(API_URL) result=client.service.getResult(code) return dict(((k, v.encode('utf-8')) if isinstance(v, suds.sax.text.Text) else (k, v)) for (k, v) in result)
date_file=getLastDumpDate()
request=sendRequest(XML_FILE_NAME,SIG_FILE_NAME) #Проверяем, принят ли запрос к обработке
if request['result']: #Запрос не принят, получен код code=request['code'] print 'Got code %s' % (code) print 'LastDumpDate %s' % (date_file) print 'Trying to get result...' print 'sleep 60 sec' time.sleep(60) while 1: #Пытаемся получить архив по коду request=getResult(code) if request['result']: #Архив получен, скачиваем его и распаковываем print 'Got it!' file = open('result.zip', "wb") file.write(base64.b64decode(request['registerZipArchive'])) file.close() break else: #Архив не получен, проверяем причину. if request['resultComment']=='запрос обрабатывается': #Если это сообщение об обработке запроса, то просто ждем минутку. print 'Not ready yet.' print('sleep 60 sec') time.sleep(60) else: #Если это любая другая ошибка, выводим ее и прекращаем работу print 'Error: %s' % request['resultComment'] break else: #Запрос не принят, возвращаем ошибку print 'Error: %s' % request['resultComment']
|
|
| |
vlad5503 | Дата: Пятница, 25.07.2014, 08:28 | Сообщение # 50 |
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
| Всем привет и поздравления с праздником Системного Администартора!!! Вот сел за изучение нововведения по теме реестра запрещенных ресурсов. Перепробовал варианты "втыкания" строки versionNum=2 в имеющийся срипт на питоне к хорошему не привела. Вываливает ошибку обратботки скрипта. Vad Вы не пробовали ещё доработать свой вариант скрипта? Насколько я понимаю эту строку надо использовать в файле zapretinfo.py?
Код def sendRequest(requestFile,signatureFile, "versionNum=2"): # Формируем и отправляем запрос на файл, в ответе код file = open(requestFile, "rb") # входные параметры фаил xml и подпись файла data = file.read() file.close() xml = base64.b64encode(data)
У кого есть идеи?Добавлено (25.07.2014, 08:25) --------------------------------------------- Посидел подумал... А нафига я ковычки писал? сделал так:
Код def sendRequest(requestFile,signatureFile,versionNum=2):
Хапрос ушел... Жду ответа.Добавлено (25.07.2014, 08:28) --------------------------------------------- Получил ответ: Код Got code 8e525eb7a1e09bd44faffdb5fcb74d3f LastDumpDate 1406261100000 Trying to get result... sleep 80 sec Not ready yet. sleep 60 sec Got it! Получено
Наш фаервол сругался так: Код ipfw: hostname ``8022.8267.4028.8473'' unknown Будем разбираться....
Сообщение отредактировал vlad5503 - Пятница, 25.07.2014, 07:55 |
|
| |
CAche | Дата: Вторник, 26.08.2014, 16:23 | Сообщение # 51 |
Canberra
Группа: Проверенные
Сообщений: 3
Репутация: 2
Статус: Offline
| Вопрос актуален. Кто внедрял versionNum, откликнитесь. В одном месте был написан метод: result=client.service.sendRequest(xml,sert,«2.0»), но работает ли пока не ответили. Коллега, который этим занимался в отпуске, самому экспериментировать как-то не хочется)))
|
|
| |
denis | Дата: Среда, 27.08.2014, 13:47 | Сообщение # 52 |
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: Offline
| заработало вот так: сначало переменная: dump = '2.0' в функции пишем это: def sendRequest(requestFile,signatureFile,dumpp): и вызов функции: request=sendRequest(XML_FILE_NAME,SIG_FILE_NAME,dump) В результате с тестового ресурса formatVersion="2.0" и subnet С основного ресурса тоже formatVersion="2.0"
|
|
| |
CAche | Дата: Пятница, 29.08.2014, 08:26 | Сообщение # 53 |
Canberra
Группа: Проверенные
Сообщений: 3
Репутация: 2
Статус: Offline
| Всё, получилось. По выше указанному методу качается, но только первая версия. Вторая версия начала скачиваться после добавления параметра dumpFormatVersion в строку: result=client.service.sendRequest(xml,sign,dumpFormatVersion). В итоге этот параметр dumpFormatVersion добавлен в три строки:
def sendRequest(requestFile,signatureFile,dumpFormatVersion): result=client.service.sendRequest(xml,sign,dumpFormatVersion) request=sendRequest(XML_FILE_NAME,SIG_FILE_NAME,dumpFormatVersion)Добавлено (29.08.2014, 08:26) --------------------------------------------- и да, переменную dumpFormatVersion не забыть объявить. dumpFormatVersion = "2.0"
|
|
| |
vlad5503 | Дата: Пятница, 29.08.2014, 13:46 | Сообщение # 54 |
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
| Не отписался по своей ошибке: Наш фаервол сругался так: Код ipfw: hostname ``8022.8267.4028.8473'' unknown Я использовал свой скрипт выборки ip-адресов из dump-а... Покрутив его - ошибка выборки не выяснена пока. Поэтому за неимением времени разбираться тогда остановился на скрипте автора и запустил его в работу. Сейчас выгрузка идет правильно без подобных ошибок. Осталось дождаться 01.09 и увидеть в работе собранный скрипт для формата 2.0. На этом пока всё. Всем удачи.
|
|
| |
logoff | Дата: Пятница, 29.08.2014, 21:11 | Сообщение # 55 |
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
| Зачем ждать? версия формата казана в возвращаемом реестре
|
|
| |
Тасичка | Дата: Воскресенье, 31.08.2014, 17:58 | Сообщение # 56 |
Воронеж
Группа: Проверенные
Сообщений: 4
Репутация: 2
Статус: Offline
| Добрый день. Добавил в 3 строки dumpFormatVersion. Объявил переменную :
API_URL = "http://www.zapret-info.gov.ru/services/OperatorRequest/?wsdl" XML_FILE_NAME = "Zapros.xml" SIG_FILE_NAME = "Zapros.xml.sig" dumpFormatVersion = "2.0"
Но открываю скачанный файл пишет xml version "1.0" Правильно ли объявил переменную? URL указан правильно?Добавлено (31.08.2014, 17:58) --------------------------------------------- Может я немного гоню) Как проверить какой версии пришла выгрузка?)
|
|
| |
vlad5503 | Дата: Воскресенье, 31.08.2014, 20:10 | Сообщение # 57 |
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
| А, действительно почему так?! Код [color=#0000ff]<?xml version="1.0" encoding="windows-1251" ?> - <reg:register updateTime="2014-08-31T18:05:00+04:00" updateTimeUrgently="2014-08-30T21:02:00+04:00" xmlns:reg="http://rsoc.ru" xmlns:tns="http://rsoc.ru">
|
|
| |
logoff | Дата: Понедельник, 01.09.2014, 00:15 | Сообщение # 58 |
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
| Цитата Тасичка ( ) Может я немного гоню) Как проверить какой версии пришла выгрузка?) Выгрузка приходит как xml файл - смотрите там.
|
|
| |
logoff | Дата: Понедельник, 01.09.2014, 00:19 | Сообщение # 59 |
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
| Цитата vlad5503 ( ) xml version="1.0" это не тот параметр...
|
|
| |
Тасичка | Дата: Понедельник, 01.09.2014, 15:22 | Сообщение # 60 |
Воронеж
Группа: Проверенные
Сообщений: 4
Репутация: 2
Статус: Offline
| Да это я уже понял) а где написано что выгрузка 2 версии не нашел
|
|
| |