Skip to content

Documentation — ksrf.py

revoltMoon edited this page Nov 14, 2018 · 8 revisions

ksrf.py

ping

  • Проверка работоспособности сайта при запуске web crawler.

Объявление

  • def ping(host: str)

Параметры

  1. host — адрес, который нам требуется.

Возвращает

  1. True, если host отвечает на запрос ping. Помните, что хост может не отвечать на пинг (ICMP) запрос, даже если имя хоста действительно.

get_web_driver

  • Настраиваем selenium web driver.

Объявление

  • def get_web_driver(pathToChromeWebDriver: str, pageUri: str)

Параметры

  1. pathToChromeWebDriver — путь к chrome web driver, по умолчанию PATH_TO_CHROME_WEB_DRIVER = (path.dirname(__file__) + '\\Selenium\\chromedriver.exe');
  2. pageUri — адрес интернет страницы, по умолчанию KSRF_PAGE_URI = 'http://www.ksrf.ru/ru/Decision/Pages/default.aspx'.

Возвращает

  1. Объект driver — настроенный selenium web driver.

get_open_page_script_template

  • Настраиваем шаблон скрипта открытия новых страниц.

Объявление

  • get_open_page_script_template(driver, templateKey: str)

Параметры

  1. driver — настроенный selenium web driver;
  2. templateKey — по умолчанию = 'NUMBER'.

Возвращает

  1. template шаблон скрипта открытия новых страниц.

get_open_page_script

  • Добавляем в скрипт конкретную страницу, которую надо открыть.

Объявление

  • def get_open_page_script(scriptTemplate, pageNum: int, templateKey: str)

Параметры

  1. scriptTemplate — шаблон скрипта открытия страниц;
  2. pageNum — номер страницы, которую надо открыть.

Возвращает

  1. scriptTemplate.replace(templateKey, str(pageNum))

get_page_html_by_num

  • Получение html-кода страницы.

Объявление

  • def get_page_html_by_num(driver, openPagetScriptTemplate, pageNum: int)

Параметры

  1. driver — настроенный selenium web driver;
  2. openPagetScriptTemplate — скрипт открытия новой страницы;
  3. pageNum — номер страницы.

Возвращает

  1. driver.page_source — html код страницы.

get_decision_headers

  • Получение заголовков решений.

Объявление

  • def get_decision_headers(pagesNumber: Int, sourcePrefix: str)

Параметры

  1. pagesNumber — количество страниц, начиная со второй, по умолчанию = None;
  2. sourcePrefix — префикс конкретного ресурса, по умолчанию = 'КСРФ'.

Возвращает

  1. courtSiteContent — словарь заголовков решений.

get_possible_text_location

  • Настраивание места расположения файлов по их uid.

Объявление

  • def get_possible_text_location(docID: str, foldername: str, ext: str)

Параметры

  1. docID — номер документа;
  2. foldername — папка, где лежат документы;
  3. ext — расширение файла, по умолчанию = 'txt'.

Возвращает

  1. os.path.join(foldername, docID.replace('/', '_') + '.' + ext).

del_NP_and_pageNums

  • Удаляем номера страниц и лишний текст.

Объявление

  • def del_NP_and_pageNums(textForProccessing: str)

Параметры

  1. textForProccessing — текст, который необходимо отфильтровать.

Возвращает

  1. Текст без номеров страниц.

download_text

  • Преобразование PDF файлов документов в TXT документы.

Объявление

  • def download_text(url: str, docID: str, folderName: str, isNeedSaveTxtFile: bool, isNeedReturnText: bool)

Параметры

  1. url — адрес страницы;
  2. docID — номер документа;
  3. folderName — имя папки, где хранятся файлы;
  4. isNeedSaveTxtFile — значение, нужно ли сохранять txt файл, по умолчанию = True;
  5. isNeedReturnText — значение, нужно ли вернуть текст документа, по умолчанию = False.

Возвращает

  1. pathToTXT — путь к txt файлу, либо pathToTXT и text - текст файла, если isNeedReturnText=True.

download_all_texts

  • Дополнение словаря заголовков решений путем до файла.

Объявление

  • def download_all_texts(courtSiteContent, folderName: str, needSaveTxtFile: Bool)

Параметры

  1. courtSiteContent — словарь заголовков решений;
  2. folderName — папка, куда сохраняются файлы, по умолчанию = Decision files;
  3. needSaveTxtFile — нужно ли сохранять txt файл, по умолчанию = True.

Возвращает

  1. courtSiteContent — дополненный словарь заголовков решений.

get_pages_number

  • Получение количества страниц.

Объявление

  • def get_pages_number(page: xml.html, elemOnPage: int)

Параметры

  1. page - объект xml.html с текстом;
  2. elemOnPage - количество элементов на странице, по умолчанию = 20.

Возвращает

  1. math.ceil(countOfElem / elemOnPage) - количество страниц.

class KSRFWebSource(DataSource)

  • Необходим для парсинга сайта KSRF

set_database

  • Устанавливаем данную базу данных как источник данных.

Объявление

  • def set_database(self, database)

Параметры

  1. self — представление класса;
  2. database — база данных.

prepare

  • Попытка подготовить источник данных для работы.

Объявление

  • def prepare(self)

Параметры

  1. self — представление класса.

Возвращает

  1. False, если подготовка не удалась, True, если все в порядке.

get_data

  • Получение данных по данному id документа и типу данных.

Объявление

  • def get_data(self, dataId: str, dataType: DataType)

Параметры

  1. self — представление класса;
  2. dataId — id документа;
  3. dataType — тип данных, поддерживается только DataType.DOCUMENT_TEXT;

Возвращает

  1. text — текст из файла, либо None, если тип данных не поддерживается.

get_all_data

  • Получение словаря из данных с заданным типом.

Объявление

  • def get_all_data(self, dataType: DataType, needReload: Bool)

Параметры

  1. self — представление класса;
  2. dataType — тип данных, поддерживается только DataType.DOCUMENT_HEADER, DataType.DOCUMENT_TEXT.
  3. needReload — нужно ли перезагрузить данные.

Возвращает

  1. headers — JSON заголовков файлов, если dataType = DataType.DOCUMENT_HEADER, либо словарь {id: self.get_data(id, DataType.DOCUMENT_TEXT) for id in self._decition_urls}, если dataType == DataType.DOCUMENT_TEXT.

class LocalFileStorageSource(DataSource)

  • Необходим для локального сохранения файлов

prepare

  • Попытка подготовить источник данных для работы.

Объявление

  • def prepare(self)

Параметры

  1. self — представление класса.

Возвращает

  1. False, если подготовка не удалась, True, если все в порядке.

get_data

  • Получение данных по данному id документа и типу данных.

Объявление

  • def get_data(self, dataId: str, dataType: DataType)

Параметры

  1. self — представление класса;
  2. dataId — id документа;
  3. dataType — тип данных, поддерживается только DataType.DOCUMENT_HEADER ,DataType.DOCUMENT_TEXT.

Возвращает

  1. text — текст из файла, либо None, если тип данных не поддерживается.

get_all_data

  • Получение словаря из данных с заданным типом.

Объявление

  • def get_all_data(self, dataType: DataType)

Параметры

  1. self — представление класса;
  2. dataType — тип данных, поддерживается только DataType.DOCUMENT_HEADER, DataType.DOCUMENT_TEXT.

Возвращает

  1. headers — JSON заголовков файлов, если dataType = DataType.DOCUMENT_HEADER, либо словарь {id: self.get_data(id,DataType.DOCUMENT_TEXT)for id in self._decition_urls}, если dataType == DataType.DOCUMENT_TEXT.

put_data

  • Сохранение данных в локальный файл.

Объявление

  • def put_data(self, id: str, data: str, dataType: DataType)

Параметры

  1. self — представление класса;
  2. id — id документа;
  3. data — данные, которые сохраняем;
  4. dataType — тип данных, поддерживается только DataType.DOCUMENT_HEADER, DataType.DOCUMENT_TEXT.

put_data_collection

  • Прохождение по dataDict и вызов put_data для каждого элемента словаря.

Объявление

  • def put_data_collection(self, dataDict, dataType: DataType)

Параметры

  1. self — представление класса;
  2. dataDict — словарь данных;
  3. dataType — тип данных, поддерживается только DataType.DOCUMENT_HEADER.

judyst-web-crawler wiki

Clone this wiki locally