20.04.2024
Эффективная Навигация М2М
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 5 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
Форум (скрипты, вопросы...) » Прочее » Прочее, что не вошло в другие части форума » Выгрузка списка списка запрещенных сайтов с Единого Реестра
Выгрузка списка списка запрещенных сайтов с Единого Реестра
logoffДата: Понедельник, 01.09.2014, 16:37 | Сообщение # 61
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
вот часть dump.xml из получаемого ответа от сервере register.zip

Цитата<?xml version="1.0" encoding="windows-1251"?><reg:register updateTime="2014-09-01T15:49:04+04:00" updateTimeUrgently="2014-09-01T15:49:04+04:00" formatVersion="2.0" xmlns:reg="http://rsoc.ru" xmlns:tns="http://rsoc.ru"><content id="347" includeTime="2012-11-18T15:17:51" entryType="1"><decision date="2012-11-10" number="101-РИ" org="Роскомнадзор"/>
 
vlad5503Дата: Понедельник, 01.09.2014, 18:51 | Сообщение # 62
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
странно.. у меня так:
Цитата
<?xml version="1.0" encoding="windows-1251" ?>
- <reg:register updateTime="2014-09-01T06:05:00+04:00" updateTimeUrgently="2014-08-30T21:02:00+04:00" xmlns:reg="http://rsoc.ru" xmlns:tns="http://rsoc.ru">

В запросе так:
Код
def sendRequest(requestFile,signatureFile,versionNum=2): # Формируем и отправляем запрос на файл, в ответе код  
     file = open(requestFile, "rb")          # входные параметры фаил xml и подпись файла
     data = file.read()
     file.close()
     xml = base64.b64encode(data)
Подскажите, что не так у меня?...
 
ТасичкаДата: Вторник, 02.09.2014, 12:46 | Сообщение # 63
Воронеж
Группа: Проверенные
Сообщений: 4
Репутация: 2
Статус: Offline
Что то у меня вообще перестало выгружаться... 
Пишет :

Traceback (most recent call last):
  File "build\bdist.win-amd64\egg\suds\client.py", line 112, in __init__
    self.wsdl = reader.open(url)
  File "build\bdist.win-amd64\egg\suds\reader.py", line 152, in open
    d = self.fn(url, self.options)
  File "build\bdist.win-amd64\egg\suds\wsdl.py", line 136, in __init__
    d = reader.open(url)
  File "build\bdist.win-amd64\egg\suds\reader.py", line 79, in open
    d = self.download(url)
  File "build\bdist.win-amd64\egg\suds\reader.py", line 95, in download
    fp = self.options.transport.open(Request(url))
  File "build\bdist.win-amd64\egg\suds\transport\https.py", line 60, in open
    return  HttpTransport.open(self, request)
  File "build\bdist.win-amd64\egg\suds\transport\http.py", line 64, in open
    raise TransportError(str(e), e.code, e.fp)
TransportError: HTTP Error 404: Not Found


Скиньте пжлс рабочий вариант скрипта.
 
vlad5503Дата: Вторник, 02.09.2014, 18:25 | Сообщение # 64
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
Теперь у меня выдает, что запрос не принят... (((

Думал подпись просрочена уже. Проверил  - действительна.
Проверил получение в ручном режиме - получил.
Автоматом не принимает запрос.
Скрипт подачи запроса такой:
Код
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import suds
import base64
import time
from os import remove
from zipfile import *

API_URL = "http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl"
XML_FILE_NAME = "req.xml"
SIG_FILE_NAME = "req.xml.sig"

def getLastDumpDate(): ##Проверка последнего изменения файла на сервере
     client = suds.client.Client(API_URL)
     result=client.service.getLastDumpDate()
     return result

def sendRequest(requestFile,signatureFile,versionNum=2):  # Формируем и отправляем запрос на файл, в ответе код  
     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 80 sec'
     time.sleep(80)
     while 1:
     #Пытаемся получить архив по коду
         request=getResult(code)
         if request['result']:
             #Архив получен, скачиваем его и распаковываем
             print 'Got it!'
             file_name = str(date_file)+'.zip'
             file = open(file_name, "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']

z=ZipFile(file_name,'r')
z.extractall()
z.close()
remove(file_name)

Добавлено (02.09.2014, 18:20)
---------------------------------------------
поправка в файле для правильной работы:

Код
def sendRequest(requestFile,signatureFile,versionNum=2.0):
и ещё
Код
result=client.service.sendRequest(xml,sign, versionNum)
 
Вот так должно работать...

Добавлено (02.09.2014, 18:25)
---------------------------------------------
поправка в файле для правильной работы:
Кодdef sendRequest(requestFile,signatureFile,versionNum=2.0):и ещё
Кодresult=client.service.sendRequest(xml,sign, versionNum) 
Вот так должно работать...

Сообщение отредактировал vlad5503 - Вторник, 02.09.2014, 15:16
 
CAcheДата: Среда, 03.09.2014, 09:00 | Сообщение # 65
Canberra
Группа: Проверенные
Сообщений: 3
Репутация: 2
Статус: Offline

Код
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import suds
import base64
import zipfile
from datetime import datetime
import time

API_URL = "http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl"
XML_FILE_NAME = "/путь/zapros.xml"
SIG_FILE_NAME = "/путь/zapros.xml.sig"
dumpFormatVersion = "2.0"

def getLastDumpDate():  
     client = suds.client.Client(API_URL)
     result=client.service.getLastDumpDate()
     return result

def sendRequest(requestFile,signatureFile,dumpFormatVersion): # formiruem i otpravlyaem zapros na file, v otvete - kod
     file = open(requestFile, "rb")          # vhodnye parametry: file xml i file podpisi
     data = file.read()
     file.close()
     xml = base64.b64encode(data)

     file = open(signatureFile, "rb")
     data = file.read()
     file.close()
     sign = base64.b64encode(data)

     client = suds.client.Client(API_URL)
     result=client.service.sendRequest(xml,sign,dumpFormatVersion)

     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): # skachivaem file
     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)

print 'Start: ' + (datetime.now().strftime("%d.%m.%Y %H:%M"))
date_file=getLastDumpDate()
print str(date_file) + ' = '+ str(datetime.fromtimestamp(date_file/1000))
file = open('/путь/lastDumpDate.txt')
ld = file.read()
file.close()

if ld==(str(date_file) + ' = '+ str(datetime.fromtimestamp(date_file/1000))):
    print '----- NO changes: ' + ld + ' == ' + str(date_file) + ' = '+ str(datetime.fromtimestamp(date_file/1000))
else:
    print '----- Need to update: ' + ld + ' <> ' + str(date_file) + ' = '+ str(datetime.fromtimestamp(date_file/1000))

request=sendRequest(XML_FILE_NAME,SIG_FILE_NAME,dumpFormatVersion)
#proveryaem, prinyat li zapros k obrabotke

if request['result']:
     
...далее стандартно...

Вот кусок нашего кода, всё прекрасно работает.
Содержимое реестра содержит код:

Код
<?xml version="1.0" encoding="windows-1251"?><reg:register  
updateTime="2014-09-01T15:49:04+04:00"  
updateTimeUrgently="2014-09-01T15:49:04+04:00" [b]formatVersion="2.0" xmlns:reg="http://rsoc.ru" xmlns:tns="http://rsoc.ru"><content id="347"  
includeTime="2012-11-18T15:17:51" entryType="1"><decision  
date="2012-11-10" number="101-РИ" org="Роскомнадзор"/>

А первую версию отключили, по ней ошибки сыпятся, это нормально.
 
ТасичкаДата: Среда, 03.09.2014, 16:07 | Сообщение # 66
Воронеж
Группа: Проверенные
Сообщений: 4
Репутация: 2
Статус: Offline
Невнимательность.... забыл поменять URL на http://vigruzki.rkn.gov.ru/services/OperatorRequest/?wsdl 
P.S. Вчера еще добавлял пост в догонку своему, все работает , всем спс.
 
vlad5503Дата: Пятница, 16.01.2015, 16:05 | Сообщение # 67
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
Парни спасайте!
Потерял свой файлик порядок и что устанавливать для скриптов по получению реестра.
И вспомнить не могу как ставил suds... wacko
Python установил.
а что далее и как ну ни как не могу вспомнить cry самый первый пост прочитал, но не помогло. Ссылку посмотрел - нифига не вспомнил...
На том сервер, что когда-то ставил все работает, скопировал оттуда файлики, но не тут было. Сами понимаете, что надо ещё основу(так сказать установить)...

Добавлено (16.01.2015, 16:05)
---------------------------------------------
Эх память "оперативная"... слегка закипела.
Вспомнил, установил, заработало.

Надо идти пивком охладить перегрев....
Всех с наступившим Новым Годом!!!
Здоровья, удачи, хорошей з/п и счастья в личке!

Сообщение отредактировал vlad5503 - Пятница, 16.01.2015, 14:37
 
vadДата: Вторник, 20.01.2015, 09:23 | Сообщение # 68
Барнаул
Группа: Проверенные
Сообщений: 223
Репутация: 17
Статус: Offline
С Новым Годом же! )
 
vlad5503Дата: Вторник, 17.02.2015, 08:39 | Сообщение # 69
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
Что думаете по новым правилам получения реестра запретных сайтов?
 Кто-то пробовал уже новый технология ? smile

Добавлено (17.02.2015, 08:39)
---------------------------------------------
Я проверил на тестовом выгрузку... старым скриптом - получил выгрузку.
Кто-то пробовал с методом getLastDumpDateEx ?
Не силен я в питоне... что в коде надо менять?

Код
 def getLastDumpDate(): ##Проверка последнего изменения файла на серве
     client = suds.client.Client(API_URL)
     result=client.service.getLastDumpDate()
     return result


Это
Код
result=client.service.getLastDumpDate()


Код
result=client.service.getLastDumpDateEx
 
logoffДата: Среда, 18.02.2015, 17:20 | Сообщение # 70
Тамбов
Группа: Администраторы
Сообщений: 655
Репутация: 19
Статус: Offline
Цитата vlad5503 ()
Что думаете по новым правилам получения реестра запретных сайтов?  Кто-то пробовал уже новый технология ?
Опять изменения?
 
vlad5503Дата: Четверг, 01.12.2016, 12:07 | Сообщение # 71
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
Всем привет!
В свете того, что в инете появились русскоязичные имена доменов возникла проблема в работе скрипта parser-url.py и parser-domain.py.
Они не могут переварить кодировку...
Выдают такое сообщение:
Код
Traceback (most recent call last):
  File "./parser-url.py", line 9, in <module>
    print node.childNodes[0].nodeValue
UnicodeEncodeError: 'ascii' codec can't encode characters in position 28-35: ordinal not in range(128)
Может кто-то уже поборол эту ошибку...? Просьба подсказать.
p/s/ Ну не доходят руки до изучения питона wacko
 
ProgrammmerДата: Вторник, 11.04.2017, 09:53 | Сообщение # 72
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Offline
Всем привет.
Кто-нибудь может поделиться скриптом/скриптами выгрузки и парсинга РКН.
Буду очень благодарен.
В первом посту ссылка на скрипт дохлая, точнее на файлообменнике файлы удалены.
 
vlad5503Дата: Среда, 12.04.2017, 05:34 | Сообщение # 73
Группа: Проверенные
Сообщений: 10
Репутация: 0
Статус: Offline
Посмотрите здесь скрипты http://forum.nag.ru/forum/index.php?showtopic=125393
 
ProgrammmerДата: Среда, 12.04.2017, 05:56 | Сообщение # 74
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Offline
Цитата vlad5503 ()
Посмотрите здесь скрипты http://forum.nag.ru/forum/index.php?showtopic=125393
Спасибо. Эти скрипты уже скачал.
Интерес был в скриптах написанных именно на питоне)
 
Форум (скрипты, вопросы...) » Прочее » Прочее, что не вошло в другие части форума » Выгрузка списка списка запрещенных сайтов с Единого Реестра
  • Страница 5 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
Поиск:

LogOff © 2024
Сайт создан в системе uCoz Рейтинг GPS Клуба. GPS навигаторы. GPS мониториг. GPS трекеры. ГЛОНАСС