Загрузка данных


from os import system, path, mkdir, getcwd
from bs4 import BeautifulSoup
import requests
import json
from datetime import datetime, timedelta
from fake_useragent import UserAgent

class cs:
    INFO = '\033[93m'
    GREEN = '\033[92m'
    END = '\033[0m'

User_Agent = f'{UserAgent().random}'

_ = system("cls")
name = input(f"{cs.INFO}Name: ")
offset = input("Offset: ")
now = datetime.now()

def parse(name, day, month, offset):
    HEADERS = {
        'User-Agent': User_Agent
    }
    url = f"https://telegra.ph/{name}-{month}-{day}{offset}"
    response = requests.get(url, headers = HEADERS)
    soup = BeautifulSoup(response.content, 'html.parser')  
    items = soup.findAll('img')
    photos = []
    print(f"SEARCH   | Start | {day}.{month}{offset}")
    for item in items:
        src = item.get('src')
        if not "http" in src:
            photos.append(f"https://telegra.ph{src}")
    if photos:
        print(f"{cs.GREEN}DOWNLOAD | Start | {day}.{month}{offset}{cs.END}")
        if not path.isdir(f"{getcwd()}\\images"):
            mkdir(f"{getcwd()}\\images")
        if not path.isdir(f"{getcwd()}\\images\\{name}"):
            mkdir(f"{getcwd()}\\images\\{name}")
        if not path.isdir(f"{getcwd()}\\images\\{name}\\{month}_{day}_{offset[1:]}"):
            mkdir(f"{getcwd()}\\images\\{name}\\{month}_{day}_{offset[1:]}")
        for i in range(len(photos)):
            try:
                response = requests.get(photos[i], headers = HEADERS)
                with open(f"images/{name}/{month}_{day}_{offset[1:]}/{month}_{day}_{offset[1:]}_{i}.jpg", "wb") as file:
                    file.write(response.content)
            except: pass
        print(f"{cs.GREEN}DOWNLOAD |  End  | {day}.{month}{offset}{cs.END}")

def main():
    print("")
    for _month in range(1, 12):
        for _day in range(31, 1, -1):
            for _offset in range(1, int(offset) + 1):
                if _offset == 1:
                    parse(name, f"{_day:02}", f"{_month:02}", "")
                else:
                    parse(name, f"{_day:02}", f"{_month:02}", f"-{_offset}")

if __name__ == "__main__":
    main()