Привет! В первой заметке (с последующей детализацией) мы поговорим про важное — про парсинг, а если по простому — про хождение по чужим сайтам и сбор данных с них. Парсить чужое нехорошо, но этим занимаются все.
📲 Спарсить можно все, вот вообще все, до чего у вас есть доступ. Если контент за авторизацией — это очень сильно срезает возможности, но если вы впринципе что-то видите на экране ноута или в приложении на телефоне — это всегда можно стащить автоматически. Будь то ютуб, телеграм или любой другой сервис. А вот насколько это будет быстро, легко и удобно — это уже вопрос.
Глобально сложность парсинга можно разбить на три+ группы:
— добро пожаловать
— мы вам не рады
— мы вас ненавидим
— отдельная номинация: стриминговые сервисы
🤗 «Добро пожаловать» — это большая часть интернета, то есть когда дополнительно для антипарсинга ничего не делалось. Весь контент структурировано упакован, никаких блокировщиков или рейт-лимитеров на «принимающей стороне» нет, заходи, располагайся, тащи что угодно. Такое парсить — кайф.
😡 «Мы вам не рады» — случай посложнее, когда на источнике уже обнаружили, что их парсят и стараются это ограничить. Защита может варьироваться и, как правило, представляет собой фильтрацию внешнего потока: пытаются поймать совсем анонимные сессии, ставят куку и делают трекинг по ней, всякие фингерпринты и вот это все. Это не очень приятно, но все еще достаточно легко обходится.
👹 «Мы вас ненавидим» — это уже серьезный соперник. Эти ребята уже точно знают, что их часто парсят и не просто стараются вас ограничить, а хотят вас переиграть и уничтожить. Здесь помимо фильтрации на вход (и сильно более хитрой выдачи данных) есть подмена контента, частичная обфускация и парсинг такого может превратиться в ад. То есть, проверка входа — тоже есть, но когда вы это все обошли вам начинают подсовывать не тот контент, который должен быть. Например, вы хотите узнавать цену продукта, а вам начинают кидать ее абсолютно случайную каждый раз. Если это не поймать и забирать все как есть, то потом может быть очень больно.
🎥 Про стриминг своя специфика: медиа-контент отдается порционно через специальные протоколы и часто с DRM-шифрованием, плюс каждый сегмент может требовать отдельной авторизации. Такой контент целиком можно получить только «прослушав» его фактически в реальном времени, что занимает много времени и генерит много детектируемого трафика.
📲 Спарсить можно все, вот вообще все, до чего у вас есть доступ. Если контент за авторизацией — это очень сильно срезает возможности, но если вы впринципе что-то видите на экране ноута или в приложении на телефоне — это всегда можно стащить автоматически. Будь то ютуб, телеграм или любой другой сервис. А вот насколько это будет быстро, легко и удобно — это уже вопрос.
Глобально сложность парсинга можно разбить на три+ группы:
— добро пожаловать
— мы вам не рады
— мы вас ненавидим
— отдельная номинация: стриминговые сервисы
🤗 «Добро пожаловать» — это большая часть интернета, то есть когда дополнительно для антипарсинга ничего не делалось. Весь контент структурировано упакован, никаких блокировщиков или рейт-лимитеров на «принимающей стороне» нет, заходи, располагайся, тащи что угодно. Такое парсить — кайф.
😡 «Мы вам не рады» — случай посложнее, когда на источнике уже обнаружили, что их парсят и стараются это ограничить. Защита может варьироваться и, как правило, представляет собой фильтрацию внешнего потока: пытаются поймать совсем анонимные сессии, ставят куку и делают трекинг по ней, всякие фингерпринты и вот это все. Это не очень приятно, но все еще достаточно легко обходится.
👹 «Мы вас ненавидим» — это уже серьезный соперник. Эти ребята уже точно знают, что их часто парсят и не просто стараются вас ограничить, а хотят вас переиграть и уничтожить. Здесь помимо фильтрации на вход (и сильно более хитрой выдачи данных) есть подмена контента, частичная обфускация и парсинг такого может превратиться в ад. То есть, проверка входа — тоже есть, но когда вы это все обошли вам начинают подсовывать не тот контент, который должен быть. Например, вы хотите узнавать цену продукта, а вам начинают кидать ее абсолютно случайную каждый раз. Если это не поймать и забирать все как есть, то потом может быть очень больно.
🎥 Про стриминг своя специфика: медиа-контент отдается порционно через специальные протоколы и часто с DRM-шифрованием, плюс каждый сегмент может требовать отдельной авторизации. Такой контент целиком можно получить только «прослушав» его фактически в реальном времени, что занимает много времени и генерит много детектируемого трафика.
🦄2❤1
Это был вводно-обзорный пост, а теперь поговорим как с этим жить.
На самом деле, часто защиту от парсинга перепоручают специализированным сервисам (Cloudflare, Akamai bot manager), которые делают много черновой работы сами, в том числе javascript challenge (что-то тыкнуть на странице, поводить мышкой и тд). Это отсекает кучу парсеров в виде просто скриптов.
🦾 Поэтому если мы хотим сделать что-то серьёзное, нужно изначально работать в browser-like стиле. Самый популярный набор библиотек — это Selenium и Playwright. Браузер можно обернуть в xvfb (виртуальный GUI) и получить полнофункциональный графический браузер, потому что headless-режим иногда даёт свои микро-нюансы.
👣 Затем нам нужно «набить историю» и немного походить по сайту, имитируя поведение живого пользователя: сохранять все куки, localStorage, вести себя правдоподобно.
Совсем грязный хак для очень сложных систем — попасть на нужный сайт ботом из поисковика: так мы становимся более похожими на целевого пользователя, нежели по прямому заходу на сайт.
🤖🤖 Для больших объёмов нужна фермочка таких ботов — доступ к различным прокси и пулам браузеров с подготовленной историей.
Если все сделать правильно, это становится ключиком к большинству интернета. Остальное — либо глубокая специфика, либо действительно надёжные системы.
На самом деле, часто защиту от парсинга перепоручают специализированным сервисам (Cloudflare, Akamai bot manager), которые делают много черновой работы сами, в том числе javascript challenge (что-то тыкнуть на странице, поводить мышкой и тд). Это отсекает кучу парсеров в виде просто скриптов.
🦾 Поэтому если мы хотим сделать что-то серьёзное, нужно изначально работать в browser-like стиле. Самый популярный набор библиотек — это Selenium и Playwright. Браузер можно обернуть в xvfb (виртуальный GUI) и получить полнофункциональный графический браузер, потому что headless-режим иногда даёт свои микро-нюансы.
👣 Затем нам нужно «набить историю» и немного походить по сайту, имитируя поведение живого пользователя: сохранять все куки, localStorage, вести себя правдоподобно.
Совсем грязный хак для очень сложных систем — попасть на нужный сайт ботом из поисковика: так мы становимся более похожими на целевого пользователя, нежели по прямому заходу на сайт.
🤖🤖 Для больших объёмов нужна фермочка таких ботов — доступ к различным прокси и пулам браузеров с подготовленной историей.
Если все сделать правильно, это становится ключиком к большинству интернета. Остальное — либо глубокая специфика, либо действительно надёжные системы.
🦄2✍1
👾👾👾 Важный плюс вайб-кодинга
Один из самых крутых и редко упоминаемых плюсов вайб-кодинга — это возможность быстро собрать себе нужный сетап чего угодно и что-то попробовать, с чем вы еще не работали, а хотелось бы.
Захотелось поиграться с kafka streams — вжух и готово, вебсокеты, новая dvc, — без проблем. Описываешь словами что нужно и в какой комбинации (а сложные конфигурации часто можно собрать с первого же хорошего промпта), сразу просишь упаковаться в docker-compose и через пару минут все будет готово.
Ну а самый популярный инструмент вайб-кодинга — Cursor — сейчас всем дает достаточно много бесплатных запросов в топовые модельки и не требует впн, поэтому попробовать его хотя бы разок точно стоит 🤗
Один из самых крутых и редко упоминаемых плюсов вайб-кодинга — это возможность быстро собрать себе нужный сетап чего угодно и что-то попробовать, с чем вы еще не работали, а хотелось бы.
Захотелось поиграться с kafka streams — вжух и готово, вебсокеты, новая dvc, — без проблем. Описываешь словами что нужно и в какой комбинации (а сложные конфигурации часто можно собрать с первого же хорошего промпта), сразу просишь упаковаться в docker-compose и через пару минут все будет готово.
Ну а самый популярный инструмент вайб-кодинга — Cursor — сейчас всем дает достаточно много бесплатных запросов в топовые модельки и не требует впн, поэтому попробовать его хотя бы разок точно стоит 🤗
🤗3👍2🤯1💩1
Написал большую статью на хабр о том, как мы делаем внутренний бенчмарк для распознавания речи (ASR).
Детальная часть о том, почему распознавание в реалтайме так важно, особенности и нюансы замеров и, собственно, сами циферки.
Претенденты: семейство Whisper, семейство GigaAM, T-One и vosk.
Приятного чтения! 🤗
https://habr.com/ru/articles/938438/
Детальная часть о том, почему распознавание в реалтайме так важно, особенности и нюансы замеров и, собственно, сами циферки.
Претенденты: семейство Whisper, семейство GigaAM, T-One и vosk.
Приятного чтения! 🤗
https://habr.com/ru/articles/938438/
Хабр
Бенчмарк качества распознавания речи (ASR) в телефонии: как мы сравниваемся с Whisper, GigaAM и T-One
Привет! Распознаванием речи (ASR) уже никого не удивишь, но качественное распознавание на разговорном русском языке, а особенно в телефонии — очень сложная штука: люди редко говорят как...
👍4🔥2❤1
Вчера гугл сделал очень крутой релиз, выложив новую модель Gemini Flash для картинок. Я на ней залип, это очень крутая штука. А полученный тест-драйв упаковал в пост на хабре.
https://habr.com/ru/articles/941290/
https://habr.com/ru/articles/941290/
Хабр
Тест-драйв Nano Banana (Gemini 2.5 Flash Image): новый фотошоп и революция в редактировании изображений от Google
Вчера вышла модель Gemini 2.5 Flash Image (промо название Nano Banana), которая, возможно, изменит мир работы с изображениями так, как это сделал своим появлением фотошоп. В посте — много классных...
🔥11🍌2🦄2
Так как я сейчас занимаюсь по большей части агентами, то переименовал канальчик в Agentic World, планирую писать больше коротких, но интересных заметок про агентов, LLM, продукты и людей. А в качестве примера — бекстейдж того, как я подбирал аватарку.
Сначала хотелось сделать какой-то привычный мир, в котором часть работы взяли на себя агенты. Почему-то пришла в голову булочная. Но так как агенты работу забирают, но часто делают кривовасто, то хотелось отразить и это.
Сначала показалась удачная аналогия с симпсонами, как аналог перепопсованному миядзаки. Но не пошло.
Потом вспомнилось, как в генерашки удачно передается советский треш-колорит, но мой привычный генератор с этим не справился и вышла шляпа. Да и убитая общага — как будто бы чуть не то.
Полет мысли дальше — а что если взять атмосферу безнадеги ранних 90х и поместить туда роботов? Ведь чисто в теории, если они заберут у нас работу (хаха), то чисто гипотетически такое возможно?
Вышли две крутые картинки, не смог между ними выбрать и сгенерировал третью — чисто под аву. По-моему, вышло весело, доволен 😀
Сначала хотелось сделать какой-то привычный мир, в котором часть работы взяли на себя агенты. Почему-то пришла в голову булочная. Но так как агенты работу забирают, но часто делают кривовасто, то хотелось отразить и это.
Сначала показалась удачная аналогия с симпсонами, как аналог перепопсованному миядзаки. Но не пошло.
Потом вспомнилось, как в генерашки удачно передается советский треш-колорит, но мой привычный генератор с этим не справился и вышла шляпа. Да и убитая общага — как будто бы чуть не то.
Полет мысли дальше — а что если взять атмосферу безнадеги ранних 90х и поместить туда роботов? Ведь чисто в теории, если они заберут у нас работу (хаха), то чисто гипотетически такое возможно?
Вышли две крутые картинки, не смог между ними выбрать и сгенерировал третью — чисто под аву. По-моему, вышло весело, доволен 😀
👍3💅3❤1🤪1
