29.05.2017
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 5«12345»
Форум (скрипты, вопросы...) » Прочее » Прочее, что не вошло в другие части форума » Выгрузка списка списка запрещенных сайтов с Единого Реестра
Выгрузка списка списка запрещенных сайтов с Единого Реестра
vadДата: Четверг, 13.02.2014, 13:23 | Сообщение # 46
Барнаул
Группа: Проверенные
Сообщений: 223
Репутация: 17
Статус: Offline
Видел. Посмотрю что случилось и отпишусь.
 
FreeMadManДата: Вторник, 22.04.2014, 16:59 | Сообщение # 47
Группа: Проверенные
Сообщений: 2
Репутация: 4
Статус: Offline
vad, доброго времени суток, наткнулись в поиске на ваш чудесный скрипт, пытаемся заставить его работать, не поможете ли с проблемой.
Я признаюсь не опытен в *nix системах, но я сейчас после получения в конце Got it, а до этого тонны крякозябр не знаю где искать результат всё этой операции. wacko
 
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
Всё заработало! Ура.  v

Код
#!/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