Skip to content

Documentation — law_codes.py

revoltMoon edited this page Nov 27, 2018 · 18 revisions

_get_cookie

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

Объявление

  • def _get_cookie(response: (response from: urllib.request.urlopen(url,[data],[timeout])))

Параметры

  1. response — ответ с сервера.

Возвращает

  1. str — куки, полученные с сайта.

_get_page

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

Объявление

  • def _get_page(url: str, reqHeaders: dict[str,str], prevResponse: (response from: urllib.request.urlopen(url,[data],[timeout])), referer: str, raw: bool)

Параметры

  1. url — url страницы, которую надо получить;
  2. reqHeaders — словарь с заголовками POST-запроса;
  3. prevResponse — это второй элемент кортежа результата, возвращаемого самой _get_page, по умолчанию = None;
  4. referer — строка с URL страницы, с которой якобы будет сделан переход, по умолчанию = None;
  5. raw — обработанные ли данные, по умолчанию = false.

Возвращает

  1. tuple(url lib.request.urlopen(urllib.request.Request(url, headers=reqHeaders)).read(), url lib.request.urlopen(req)) — данные со страницы.

_decode_json_from_str

  • Парсим JSON.

Объявление

  • _decode_json_from_str(content: str)

Параметры

  1. content — строка в формате JSON.

Возвращает

  1. list or dict сколь угодной вложенности распарсенных данных из JSON'а.

class _BaseCode

  • Класс, описывающий работу с данными некоторого кодекса.

get_document_redactions

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

Объявление

  • def get_document_redactions(cls, url: str, reqHeaders: dict[str,str], prevResponse: url lib.request.urlopen(req), referer: str)

Параметры

  1. cls — представление класса;
  2. url — url страницы, которую надо получить;
  3. reqHeaders — словарь с заголовками POST-запроса;
  4. prevResponse — это второй элемент кортежа результата, возвращаемого самой _get_page, по умолчанию = None;
  5. referer — строка с URL страницы, с которой якобы будет сделан переход, по умолчанию = None;

Возвращает

  1. jsonRedactions['editions']['list'], response — list и объект класса

create_header

  • Создание заголовка документа.

Объявление

  • def create_header(cls, CUR_RD_KEY: str, supertype: str, doc_type, absolute_path: str, interredaction_id: str, title: str, release_date: str, effective_date: str, attached: list[str], dstLabel: str, parLabelInSavedHtm: str, rdNote: str, consNote: str, text: str)

Параметры

  1. cls — представление класса;
  2. CUR_RD_KEY — ключ текущей редакции;
  3. supertype — супертип;
  4. doc_type — тип документа;
  5. absolute_path — абсолютный путь к файлу заголовка;
  6. interredaction_id — id данной редакции;
  7. title — заголовок постановления;
  8. release_date — дата выхода;
  9. effective_date — дата вступления в силу;
  10. attached — список приложений;
  11. dstLabel — позиция положения кодекса внутри документа на КонсультантПлюс;
  12. parLabelInSavedHtm — позиция положения кодекса внутри сохранненого html;
  13. rdNote — примечание о редакции положения, по умолчанию None;
  14. consNote — примечание КонсультантПлюс к положению, по умолчанию None;
  15. text — текст постановления с заголовком header, по умолчанию None.

Возвращает

  1. header — словарь с заголовком документа.

create_subheader

  • Создаем подзаголовок документа.

Объявление

  • def create_subheader(cls, hKey: str, SUBH_SIGN: str, absolute_path: str, interredaction_id: str, title: str, rdNote: str, consNote: str, text: str)

Параметры

  1. cls — представление класса;
  2. hKey — ключ надположения (части статьи — ключ статьи, для статьи — главы т.д.);
  3. SUBH_SIGN — обозначение данного положения внутри строки doc_id. Для статьи - СТ: КОАПРФ/СТ-2.5;
  4. absolute_path — абсолютный путь к файлу подзаголовка;
  5. interredaction_id — id данной редакции;
  6. title — заголовок постановления;
  7. rdNote — примечание о редакции положения;
  8. consNote — примечание КонсультантПлюс к положению;
  9. text — текст постановления с подзаголовком header, по умолчанию None.

Возвращает

  1. header — словарь с подзаголовком документа.

get_subhdrs_frm_tree_and_return_lines_for_articles

  • Получаем подзаголовки из дерева и возвращаем линии для статей.

Объявление

  • def get_subhdrs_frm_tree_and_return_lines_for_articles(cls, treeItem: dict[str,str], hKey: str, CUR_RD_KEY: str, rekeyedAttachedTitles: dict[str,dict[str,str]], splittedHtm: dict[str, dict[str,str]])

Параметры

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

  2. treeItem — дерево, которое содержит структуру кодекса до статей включительно, берется с сайта КонсультантПлюс;

  3. hKey — ключ надположения (части статьи — ключ статьи, для статьи — главы т.д.);

  4. CUR_RD_KEY — ключ текущей редакции;

  5. rekeyedAttachedTitles — переименованные прикрепленные заголовки;

  6. splittedHtm — разделенный html.

Возвращает

  1. dict[str,int] — словарь с uid — ключами и номерами строк — значениями.

get_par_html

  • Получаем распарсенную html страницу.

Объявление

  • def get_par_html(cls, allHtml: str, par: int)

Параметры

  1. cls — представление класса;
  2. allHtml — html код, который парсим;
  3. par — начальное id для парсинга.

Возвращает

  1. lxml.html.document_fromstring(parHtml[0]) — распарсенная html.

get_paras_and_titles_from_saved_htm

  • Получение заголовков из сохраненного html.

Объявление

  • def get_paras_and_titles_from_saved_htm(cls, savedHtm: str)

Параметры

  1. cls — представление класса;
  2. savedHtm — сохраненный html код.

Возвращает

  1. dict[str, str]

split_saved_htm

  • Разделение сохраненного html

Объявление

  • def split_saved_htm(cls, savedHtm: str)

Параметры

  1. cls — представление класса;
  2. savedHtm — сохраненный html код.

Возвращает

  1. dict[str,str]

get_cons_note_from_str

  • Получение примечаний из строки.

Объявление

  • def get_cons_note_from_str(cls, string: str)

Параметры

  1. cls — представление класса;
  2. string — строка, в которой ищем примечания.

Возвращает

  1. '\n'.join(xl), где xl — list.

clear_splitted_htm_and_get_plus_add_cons_notes

  • Очищаем разделенную html и получаем с добавленными примечаниями.

Объявление

  • def clear_splitted_htm_and_get_plus_add_cons_notes(cls, splittedHtm: dict[str, dict[str,str]])

Параметры

  1. cls — представление класса;
  2. splittedHtm — разделенный html код.

build_article_subheaders_treeItem

  • Создаем подзаголовки статей.

Объявление

  • def build_article_subheaders_treeItem(cls, articleLines: dict[str, list[str]], CUR_RD_KEY: str)

Параметры

  1. cls — представление класса;
  2. articleLines — словарь со статьями;
  3. CUR_RD_KEY — ключ текущей редакции.

Возвращает

  1. None.

get_code_content

  • Получение данных из содержимого JSON файла.

Объявление

  • def get_code_content(cls, pathToResultJsonLinesFile: str, pathToFileForKeysThathWereDownloadedYet: str)

Параметры

  1. cls — представление класса;
  2. pathToResultJsonLinesFile — путь к файлу с JSON строками из результата;
  3. pathToFileForKeysThathWereDownloadedYet — путь к файлу для ключей, который мы только что скачали.

Возвращает

  1. None

class _Ukrf(_BaseCode)

  • Класс, описывающий настройку параметров для работы с Уголовным Кодексом Российской Федерации.

class _Koaprf(_BaseCode)

  • Класс, описывающий настройку параметров для работы с Кодексом Российской Федерации об административных правонарушениях.

class _Nkrf(_BaseCode)

  • Класс, описывающий настройку параметров для работы с Налоговым Кодексом Российской Федерации.

class _Gkrf(_BaseCode)

  • Класс, описывающий настройку параметров для работы с Гражданским Кодексом Российской Федерации.

get_content

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

Объявление

  • def get_content( codes: set, pathToResultJsonLinesFile: str, pathToFileForKeysThathWereDownloadedYet: str)

Параметры

  1. codes — сет с префиксами наших кодексов, по умолчанию = _ALL_CODES=frozenset(_codesParsers.keys());
  2. pathToResultJsonLinesFile — путь к файлу с JSON строками из результата, по умолчанию = codeHeaders.jsonlines;
  3. pathToFileForKeysThathWereDownloadedYet — путь к файлу для ключей, который мы только что скачали, по умолчанию = processedYet.keys.

Возвращает

  1. None, но вызывает _codesParsers[code].get_code_content(pathToResultJsonLinesFile, pathToFileForKeysThathWereDownloadedYet), передавая тем самым данные туда.

judyst-web-crawler wiki

Clone this wiki locally