Для отслеживания изменений, можно нажать кнопку Watch. Кнопка Star даст мне знать, что репозиторий кому-то интересен и есть смысл его обновлять каждый год.
⚠️ Поле nowork2020 переименовано в nowork
2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024
2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025
- holidays - выходные и праздничные дни
- preholidays - предпраздничные дни, в которые продолжительность работы сокращается на один час
- nowork - внезапные нерабочие дни в соответствии с Указом Президента
{
"holidays": [
"2017-01-01",
"2017-12-31"
],
"preholidays": [
"2017-02-22",
"2017-03-07",
"2017-11-03"
],
"nowork": [
"2020-03-30",
"2020-03-31",
"2020-06-24",
"2021-05-04",
"2021-05-05",
"2021-05-06",
"2021-05-07"
]
}
Будние дни с 2020-03-30 по 2020-05-08 - нерабочиие (карантин)
2020-06-24 - День празднования 75-й годовщины Победы в Великой Отечественной войне
Все эти дни вынесены в json поле "nowork"
2020-07-01 — День голосования по поправкам в Конституцию РФ (добавлен в массив holidays)
Подробно про изменения календаря в 2020 в описании к пулл реквесту #5
curl -o src/main/resources/calendar.json https://raw.githubusercontent.com/d10xa/holidays-calendar/master/json/calendar.json
task downloadCalendar
downloadCalendar.doLast {
def f = file("$projectDir/src/main/resources/calendar.json")
new URL('https://raw.githubusercontent.com/d10xa/holidays-calendar/master/json/calendar.json')
.withInputStream { i -> f.withOutputStream { it << i } }
}
Исходный код страниц можно взять из браузера. Пример прямых ссылок для chrome:
view-source:https://www.superjob.ru/proizvodstvennyj_kalendar/2024/
view-source:https://www.consultant.ru/law/ref/calendar/proizvodstvennye/2024/
Как альтернативный вариант, можно использовать headless chrome:
mkdir html
mkdir html
export YEAR=2024
google-chrome --headless --disable-gpu --crash-dumps-dir=/tmp --dump-dom "https://www.superjob.ru/proizvodstvennyj_kalendar/$YEAR" > "html/superjob$YEAR.html"
google-chrome --headless --disable-gpu --crash-dumps-dir=/tmp --dump-dom "https://www.consultant.ru/law/ref/calendar/proizvodstvennye/$YEAR/" > "html/consultant$YEAR.html"
Запуск парсера superjob:
export YEAR=2024
./gradlew runSuperjob --args="--input $PWD/html/superjob$YEAR.html --output $PWD/json/superjob$YEAR.json"
Запуск парсера consultant:
export YEAR=2024
./gradlew runConsultant --args="--input $PWD/html/consultant$YEAR.html --output $PWD/json/consultant$YEAR.json"
Объединение в общий файл calendar.json
./gradlew mergeJson