Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΠ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π½ΡΠ»Ρ. Π‘ΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΌΠ΅Π½Ρ ΡΠ΅Π½Ρ Π² PMS Kontur Π¦Π΅Π»Ρ: Π Π°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Python-ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠ΅Π½ΡΡΡ ΡΠ΅Π½Ρ Π½Π° Π½ΠΎΠΌΠ΅Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Kontur ΡΠ΅ΡΠ΅Π· ΠΈΡ
API (v2), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΊΡΠΊΠΈ ΠΈ CSRF/XSRF ΡΠΎΠΊΠ΅Π½. 1. ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ Π‘ΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΡ Π΄Π°ΡΡ. ΠΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΆΠΈΠ²ΡΠ΅ ΠΊΡΠΊΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΠΈΠ»ΠΈ Selenium), Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄ΡΠΈ ΡΠ΅ΡΠ΅Π· v2 API Kontur (PATCH https://hotel.kontur.ru/api/v2/timetable-prices/daily). Π‘ΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ 401/403 ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ CSRF. 2. ΠΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ROOM_CATEGORY_ID β ID ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π½ΠΎΠΌΠ΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ). TARGET_DATE β Π΄Π°ΡΠ° Π·Π°Π΅Π·Π΄Π° (ISO 8601 ΡΠΎΡΠΌΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 2025-09-08T00:00). TARGET_ROUBLES ΠΈ TARGET_COPPECKS β ΡΠ΅Π½Π°. Π€Π°ΠΉΠ» cookies ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡ
ΡΠ΅ΡΠ΅Π· Selenium. 3. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π‘ΠΊΡΠΈΠΏΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΡΠΊΠΈ ΠΈ ΡΠΎΠΊΠ΅Π½ CSRF ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ° (ΡΠ΅ΡΠ΅Π· Selenium) ΠΈΠ»ΠΈ ΠΈΠ· Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΡΠΊΠΈ. Π€ΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ JSON Π΄Π»Ρ PATCH-Π·Π°ΠΏΡΠΎΡΠ° Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅Π½ΠΎΠΉ. ΠΡΠΏΡΠ°Π²Π»ΡΡΡ PATCH-Π·Π°ΠΏΡΠΎΡ Π½Π° API v2 Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΌΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ X-XSRF-TOKEN. ΠΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ: ΡΡΠ°ΡΡΡ ΠΎΡΠ²Π΅ΡΠ° ΠΈ ΡΠ΅Π»ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ
: ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°, ΠΎΡΠΈΠ±ΠΊΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π½Π΅Π²Π΅ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ
. 4. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π―Π·ΡΠΊ: Python 3.10+ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ: requests, selenium (Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π°), logging ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Linux Π±Π΅Π· GUI (headless mode Π΄Π»Ρ Selenium). Π§ΠΈΡΡΡΠΉ, ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ. 5. ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π°Ρ ΠΈ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. Π‘ΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ
cookies Π² ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π½Ρ (GET ΠΏΠΎΡΠ»Π΅ PATCH). 6. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π Π°Π±ΠΎΡΠΈΠΉ Python-ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅Π½Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΡ Π΄Π°ΡΡ/ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ°. ΠΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ Π·Π°ΠΏΡΡΠΊΡ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅.