innopolis-fwd-project-backend

Форк
0
73 строки · 2.4 Кб
1
import datetime
2
import os
3
from selenium import webdriver
4
from selenium.webdriver.common.by import By
5

6
months = {
7
    1: "jan",
8
    2: "feb",
9
    3: "mar",
10
    4: "apr",
11
    5: "may",
12
    6: "june",
13
    7: "july",
14
    8: "aug",
15
    9: "sep",
16
    10: "oct",
17
    11: "nov",
18
    12: "dec"
19
}
20

21

22
def get_painting_url(year: int, month: int, day: int) -> str:
23
    url = f'https://www.hiroshimatsumoto.com/{year}paintings/works/' \
24
          f'{months[month]}{day if day > 9 else "0" + str(day)}{year}.jpg'
25
    print(url)
26
    return url
27

28

29
def download_image(image_url, save_path) -> None:
30
    op = webdriver.ChromeOptions()
31
    op.add_argument('headless')
32
    driver = webdriver.Chrome(options=op)
33
    driver.get(image_url)
34

35
    if not '404' in driver.title:
36
        with open(save_path, 'wb') as f:
37
            f.write(driver.find_element(By.XPATH, '/html/body/img').screenshot_as_png)
38
            print('downloaded')
39

40

41
def get_image(year: int, month: int, day: int) -> None:
42
    url = get_painting_url(year, month, day)
43

44
    if not os.path.exists(os.path.dirname(os.path.realpath(__file__)) + '/photos'):
45
        os.mkdir(os.path.dirname(os.path.realpath(__file__)) + '/photos')
46
        print('created /photos')
47

48
    if not os.path.exists(os.path.dirname(os.path.realpath(__file__)) + f'/photos/{year}'):
49
        os.mkdir(os.path.dirname(os.path.realpath(__file__)) + f'/photos/{year}')
50
        print(f'created /photos/{year}')
51

52
    if not os.path.exists(os.path.dirname(os.path.realpath(__file__)) + f'/photos/{year}/{month}'):
53
        os.mkdir(os.path.dirname(os.path.realpath(__file__)) + f'/photos/{year}/{month}')
54
        print(f'created /photos/{year}/{month}')
55

56
    if not os.path.exists(os.path.dirname(os.path.realpath(__file__)) + f'/photos/{year}/{month}/{day if day > 9 else "0" + str(day)}'):
57
        os.mkdir(os.path.dirname(os.path.realpath(__file__)) + f'/photos/{year}/{month}/{day if day > 9 else "0" + str(day)}')
58
        print(f'created /photos/{year}/{month}/{day}')
59

60
    download_image(url, os.path.dirname(os.path.realpath(__file__)) + f"/photos/{year}/{month}/{day if day > 9 else '0' + str(day)}/image.png")
61

62

63
def main() -> None:
64
    start_date = datetime.date(2023, 7, 19)
65
    end_date = datetime.date.today()
66

67
    while start_date < end_date:
68
        get_image(start_date.year, start_date.month, start_date.day)
69
        start_date += datetime.timedelta(days=1)
70

71

72
if __name__ == "__main__":
73
    main()
74

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.