-
Notifications
You must be signed in to change notification settings - Fork 0
Documentation — ksrf.py
revoltMoon edited this page Nov 14, 2018
·
8 revisions
- Проверка работоспособности сайта при запуске web crawler.
def ping(host: str)
- host — адрес, который нам требуется.
- True, если host отвечает на запрос ping. Помните, что хост может не отвечать на пинг (ICMP) запрос, даже если имя хоста действительно.
- Настраиваем selenium web driver.
def get_web_driver(pathToChromeWebDriver: str, pageUri: str)
- pathToChromeWebDriver — путь к chrome web driver, по умолчанию
PATH_TO_CHROME_WEB_DRIVER = (path.dirname(__file__) + '\\Selenium\\chromedriver.exe')
; - pageUri — адрес интернет страницы, по умолчанию
KSRF_PAGE_URI = 'http://www.ksrf.ru/ru/Decision/Pages/default.aspx'
.
- Объект driver — настроенный selenium web driver.
- Настраиваем шаблон скрипта открытия новых страниц.
get_open_page_script_template(driver, templateKey: str)
- driver — настроенный selenium web driver;
- templateKey — по умолчанию = 'NUMBER'.
- template шаблон скрипта открытия новых страниц.
- Добавляем в скрипт конкретную страницу, которую надо открыть.
def get_open_page_script(scriptTemplate, pageNum: int, templateKey: str)
- scriptTemplate — шаблон скрипта открытия страниц;
- pageNum — номер страницы, которую надо открыть.
scriptTemplate.replace(templateKey, str(pageNum))
- Получение html-кода страницы.
def get_page_html_by_num(driver, openPagetScriptTemplate, pageNum: int)
- driver — настроенный selenium web driver;
- openPagetScriptTemplate — скрипт открытия новой страницы;
- pageNum — номер страницы.
-
driver.page_source
— html код страницы.
- Получение заголовков решений.
def get_decision_headers(pagesNumber: Int, sourcePrefix: str)
- pagesNumber — количество страниц, начиная со второй, по умолчанию = None;
- sourcePrefix — префикс конкретного ресурса, по умолчанию = 'КСРФ'.
- courtSiteContent — словарь заголовков решений.
- Настраивание места расположения файлов по их uid.
def get_possible_text_location(docID: str, foldername: str, ext: str)
- docID — номер документа;
- foldername — папка, где лежат документы;
- ext — расширение файла, по умолчанию = 'txt'.
-
os.path.join(foldername, docID.replace('/', '_') + '.' + ext)
.
- Удаляем номера страниц и лишний текст.
def del_NP_and_pageNums(textForProccessing: str)
- textForProccessing — текст, который необходимо отфильтровать.
- Текст без номеров страниц.
- Преобразование PDF файлов документов в TXT документы.
def download_text(url: str, docID: str, folderName: str, isNeedSaveTxtFile: bool, isNeedReturnText: bool)
- url — адрес страницы;
- docID — номер документа;
- folderName — имя папки, где хранятся файлы;
- isNeedSaveTxtFile — значение, нужно ли сохранять txt файл, по умолчанию = True;
- isNeedReturnText — значение, нужно ли вернуть текст документа, по умолчанию = False.
- pathToTXT — путь к txt файлу, либо pathToTXT и text - текст файла, если isNeedReturnText=True.
- Дополнение словаря заголовков решений путем до файла.
def download_all_texts(courtSiteContent, folderName: str, needSaveTxtFile: Bool)
- courtSiteContent — словарь заголовков решений;
- folderName — папка, куда сохраняются файлы, по умолчанию =
Decision files
; - needSaveTxtFile — нужно ли сохранять txt файл, по умолчанию = True.
- courtSiteContent — дополненный словарь заголовков решений.
- Получение количества страниц.
def get_pages_number(page: xml.html, elemOnPage: int)
- page - объект xml.html с текстом;
- elemOnPage - количество элементов на странице, по умолчанию = 20.
-
math.ceil(countOfElem / elemOnPage)
- количество страниц.
- Необходим для парсинга сайта KSRF
- Устанавливаем данную базу данных как источник данных.
def set_database(self, database)
- self — представление класса;
- database — база данных.
- Попытка подготовить источник данных для работы.
def prepare(self)
- self — представление класса.
- False, если подготовка не удалась, True, если все в порядке.
- Получение данных по данному id документа и типу данных.
def get_data(self, dataId: str, dataType: DataType)
- self — представление класса;
- dataId — id документа;
- dataType — тип данных, поддерживается только
DataType.DOCUMENT_TEXT
;
- text — текст из файла, либо None, если тип данных не поддерживается.
- Получение словаря из данных с заданным типом.
def get_all_data(self, dataType: DataType, needReload: Bool)
- self — представление класса;
- dataType — тип данных, поддерживается только
DataType.DOCUMENT_HEADER, DataType.DOCUMENT_TEXT
. - needReload — нужно ли перезагрузить данные.
- headers — JSON заголовков файлов, если
dataType = DataType.DOCUMENT_HEADER
, либо словарь{id: self.get_data(id, DataType.DOCUMENT_TEXT) for id in self._decition_urls}
, еслиdataType == DataType.DOCUMENT_TEXT
.
- Необходим для локального сохранения файлов
- Попытка подготовить источник данных для работы.
def prepare(self)
- self — представление класса.
- False, если подготовка не удалась, True, если все в порядке.
- Получение данных по данному id документа и типу данных.
def get_data(self, dataId: str, dataType: DataType)
- self — представление класса;
- dataId — id документа;
- dataType — тип данных, поддерживается только
DataType.DOCUMENT_HEADER ,DataType.DOCUMENT_TEXT
.
- text — текст из файла, либо None, если тип данных не поддерживается.
- Получение словаря из данных с заданным типом.
def get_all_data(self, dataType: DataType)
- self — представление класса;
- dataType — тип данных, поддерживается только
DataType.DOCUMENT_HEADER, DataType.DOCUMENT_TEXT
.
- headers — JSON заголовков файлов, если
dataType = DataType.DOCUMENT_HEADER
, либо словарь{id: self.get_data(id,DataType.DOCUMENT_TEXT)for id in self._decition_urls}
, еслиdataType == DataType.DOCUMENT_TEXT
.
- Сохранение данных в локальный файл.
def put_data(self, id: str, data: str, dataType: DataType)
- self — представление класса;
- id — id документа;
- data — данные, которые сохраняем;
- dataType — тип данных, поддерживается только
DataType.DOCUMENT_HEADER, DataType.DOCUMENT_TEXT
.
- Прохождение по dataDict и вызов put_data для каждого элемента словаря.
def put_data_collection(self, dataDict, dataType: DataType)
- self — представление класса;
- dataDict — словарь данных;
- dataType — тип данных, поддерживается только
DataType.DOCUMENT_HEADER
.