ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΡΡΡΠ²Π°Π»ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ±ΠΎΠΈ Docker ΠΈΠ·-Π·Π° ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠΊΡΠ°ΠΏΠ΅ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Puppeteer. Π‘ΠΊΡΠ°ΠΏΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ, ΡΠ°ΡΡΠΎ Π²ΡΡ
ΠΎΠ΄ΠΈΠ» ΠΈΠ· ΡΡΡΠΎΡ ΠΈΠ·-Π·Π° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°Π»ΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΡΠΈ ΡΠ±ΠΎΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΡΠΎΡΠ΅Π²ΡΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Chromium, ΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΠΈΡ
ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Azure. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π³ΠΎ Π·Π°ΠΊΡΡΡΠΈΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π² ΠΊΠΎΠ΄Π΅ ΡΠΊΡΠ°ΠΏΠ΅ΡΠ° Π±ΡΠ»ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΡΡΠ½ΠΊΡΠΈΡ `browser.close()` Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΡ
ΡΠΊΡΠ°ΠΏΠΈΠ½Π³ΠΎΠ². ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Chromium ΠΈ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Ρ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π»ΠΎΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ° `try/catch/finally`, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ `browser.close()` Π²ΡΠ΅Π³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ, ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° null Π² Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ ΠΎΡΠΈΡΠΎΡΠ΅Π²ΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΠ»Π°Π²Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅Π³Π΄Π° Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΡΡΠΊΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Puppeteer Ρ ΠΏΠΎΠΌΠΎΡΡΡ `try/catch/finally`. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠ°ΠΏΠΈΠ½Π³Π° ΠΈ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ Chromium. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π½Π° null Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΠΎΡΠΈΡΡΠΊΠΈ ΠΎΡΠΈΡΠΎΡΠ΅Π²ΡΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Chromium ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
dev.to
# π How a Missing `finally` Block Was Eating 300MB of RAM Per Failed Scrape
