удаление не нужного файла

main
Лев 2025-07-25 11:08:32 +05:00
parent f07dbc9d3b
commit 4f8bf95efa
1 changed files with 0 additions and 104 deletions

View File

@ -1,104 +0,0 @@
import requests
from bs4 import BeautifulSoup
from pprint import pprint
import os
import re
# Зашлушка, тут должен быть другой utl или список url
URL_TITLE = "https://formats.saby.ru/report/fns"
# Перенапраляет на https://formats.saby.ru/respons
URL_FORMATS = 'https://formats.saby.ru'
# Имя сохраняемого файла
filename_report = 'report fns.txt'
def parse_html(url=str):
"""
Фунция принимает строку URL,
Делает запрос, создает объект HTML
вовращаем обьект
"""
response = requests.get(url)
if not(200 <= response.status_code <= 299):
print("Ошибка при запросе:", response.status_code)
return response.status_code
# Создание обьекта HTML
soup = BeautifulSoup(response.text, 'html.parser')
return soup
def parse_date_title(url=str):
"""
Функия ожидает list из URL ввида:
url = https://formats.saby.ru/report/fns/128513
Заходит на каждый URL, запоминает дату.
Возвращает словарь две строки:
date = 01.07.22
id_date = 5.01data_title
"""
# Запрос страницы:
response = requests.get(url)
# Проверка статуса запроса
if not(200 <= response.status_code <= 299):
print('parse_date_title: ', response.status_code)
return response.status_code
# Парсинг в HTML
soup_fns = BeautifulSoup(response.text, 'html.parser')
# Поиск в HTML строки ввида: Действующий формат (с 10.01.23) 5.01
div_element = soup_fns.find('div', class_='controls-Dropdown__text')
# Извлекаем текст из элемента
text = div_element.get_text()
regex = r'.+\D+(\d+\D+\d+\D+\d+).+(\d+\D+\d+)'
date, id_date = re.search(regex, text).groups()
return date, id_date
def parse_reports(soup=BeautifulSoup, url=str):
"""
Ожидается url ввида:
https://formats.saby.ru/reports/{title}/{id}
Достаются все необходимые данные, возвращаются в ввиде словаря:
{106538: ('fns', 'НД по косвенным налогам', '01.08.23', '5.04')}
"""
# Содрежит url всех записей
list_report_url = []
dict_data = {}
# Ищет последний значение в url(пока заглушка)
title = URL_TITLE.rstrip('/').split('/')[-1]
# Цикл в котором добавляем в лист url ввида:
# https://formats.saby.ru/report/fns/116682
for link in soup.find_all('a'):
# Ищет по тегу: href
href = link.get('href')
if f'/report/{title}/' in href:
# id записи
id = href.rstrip('/').split('/')[-1]
#URL всех записей
url_title = f'{url}{href}'
list_report_url.append(url_title)
link = soup.find('a', href=href)
# Имя записи
span = link.find('span', class_="ProxySbisRu__registry-BrowserItem_typeName")
# Передаем текущию запись цикла
date, id_date = parse_date_title(url_title)
# Добавление всех данных в итоговый словарь
dict_data.update({id: (title, span.text, date, id_date)})
return dict_data
def write_report_data(filename, dict_name = dict):
"""
Сохраняем запись:
https://formats.saby.ru/report/fns/106013 Действующий формат (с 26.02.24) 5.04
"""
with open(filename, 'w', encoding='utf-8') as f:
for key, value in dict_name.items():
str_k_v = f'{key}: {value}\n'
f.write(str_k_v)
# Объект HTML
html = parse_html(URL_FORMATS)
# Словарь с нужными данными
dict_result = parse_reports(html, URL_FORMATS)
# Запись данных в текстовый файл
write_report_data(filename_report, dict_result)