Доброго времени суток! Пара замечаний, возможно автору будет интересно:) 1 Для того чтобы не бегать по каждому запросу во вкладке Network, можно воспользоваться поиском (cmd+f), который ищет вхождение текста по всем запросам (загаловкам, запросам, ответам) 1.1 У Вас уже стояла настройка, но лучше думаю для людей оговорить явно, что чтобы отображались именно ответы/запросы к серверу, нужно выбрать вкладку Fetch/XHR 2 Чтобы не копировать поотдельности хедеры и данные запроса, можно нажать на зпрос правой клавишей мыши, выбрать копировать, и копировать как curl или как fetch запрос и тп 2.1 Я находил оналйн сервисы, которые из curl могу сгенерировать запрос на любом языке, в том числе и на питоне, если запросов несколько, гораздо удобнее делать так, может сэкономить время:) Надеюсь было полезно:)
в постмане тоже есть такая функция curl в python. не всегда в Fetch/XHR удается найти нужные запросы. иногда в самом html уже есть ответ от апи с данными
честно говоря, я из другой тематики, ткнул на видос увидев "скрытые api" и подумал что какой-то фаззинг (ffuf, kiterunner) будет, "всё как мы SecOps любим", но оказалось речь про парсинг и "бытовое применение", впрочем сделано видео вполне хорошо, советы: фильтровать XHR запросы, выгружать в HAR (это JSON), ну и там смотреть - scope станет меньше и искать нужное станет легче.
7:49 Лайкайте, чтоб знали. В google chrome есть поиск во всех ответах сервера. Включить можно так: Customize and control DevTools > More tools > Search.
В реальности все обычно сложнее, content-length хедер стоило генерировать динамически все-таки, исходя из отправляемого запроса, иначе это не будет работать даже при добавлении одного символа в пароль. И нередко бывает, что сервер пытается защититься от того, что скрытый API использует кто попало, например, с помощью куков, которые вы полностью выкинули из запроса, часто приходится разбираться и с их генерацией и корректной отправкой.
Все так. Для решения этой задачи куки, к счастью не понадобились. Иначе пришлось бы их в хедер добавлять тоже. Вообще, конечно, лучше всего извлекать данные, когда у сервиса есть нормальный публичный API. К сожалению, Мегамаркет его пока не сделал :(
"куков...и с их генерацией" что?))) видео достойное своего зрителя) взять умные слова, перемешать и выдать, для хомячков пойдет, они вон на своей стороне куки генерируют, ага это так и работает))
Я вцелом понимал как это работает, но была проблема с пониманием откуда брать "токены" или "сессии", а теперь вижу что все работает проще пареной репы, большое спасибо за информацию!!!
Когда перешёл сюда предполагал поиск скрытых api, которые недоступны обычному пользователю и не отображаются в network, потому что обычным пользователем просто не вызываются. Но в целом для темы парсинга это действительно полезная вещь. А я всё таки скорее из тематики безопасности и уязвимостей. Приходилось находить некоторые как я описал действительно скрытые api. Занимает это обычно гораздо больше времени и нужно для других целей, но это совсем другая история.
@@garrag8421 не думаю, что это лучшее место для обсуждения таких вопросов. И тем не менее мне интересно ответить. Для начала решил попробовать найти хоть что-то с малым словарём от dirb, потом, когда убедился в том, что можно найти что-то не прикрытое, взял словари Api из SecList.
А еще, можно сначала освоить доступный инструментарий. В котором внезапно, есть запись последовательности действий, которые потом можно использовать либо как готовый сценарий для папитира, либо как лог который намного проще исследовать.
Словно посмотрел экранизацию романа Агаты Кристи. Ранее натыкался на ролики автора, но смотрел мельком, предвзято(т.к. подавляющее set() авторов показывают или мишуру, или типовые примеры). Ролик зашел - ничего не сказать. Очень классные сравнения, несколько деталек пазла легли в общую картину. Спасибо
Супер подача, автор молодец все коротко и в то же время ясно, без воды. Если весь курс будет сделан точно так же, то это бомба ) Аш питон захотелось освоить ) Смотрел просто ради интереса, знаком с веб программированием, но не с питон. Хотелось бы посмотреть видео, где есть что то действительно сложное для понимание, но простым языком
1 - бывает что делают защиту от таких вот любителей)) 2 - бывает что все работает только через токен 3 - бывает что отправляют в апи зашифрованные данные (или отправляют контрольную сумму, которую вычисляют своим специальным алгоритмом UDP: используйте постман для проверки и анализа скрытого апи)) а уже потом в код переносите Думаю тоже как нибудь видос запилить о подводных камнях этого дела))
Все так, надо каждый раз разбираться, как работает API, как устроена авторизация и т.п. Про Postman - я его так и не освоил нормально, мне удобнее сразу в код ¯\_(ツ)_/¯
для этого есть webdriver же, берёте им "осёдлываете" браузер ну и даже user activity (хаотичные микродвижения мышкой) делаете иногда чтобы "за своего сойти". ещё вариант есть с написанием своего extension для браузера (локальная установка - никого спрашивать разрешения не надо, браузер поддастся, вы же development делаете типа) у extension - весьма широкие полномочия доступа к DOM и не только. оба метода выше - это как в том анекдоте про обвес: "дырка в гирьке, дырка в гирьке... как будто нельзя дырку в калькуляторе просверлить! 😀"
любой пароль из ввода можно посмотреть если открыть инструменты разработчика и выбрать этот элемент(input). в свойстве type будет passord. просто меняем на text
Я бы на твоем месте burp suite использовал, это более серьезный инструмент для реверс инженеринга api. Есть вещи, которые в devtools будет удобнее посмотреть, но burp в большинстве случаев лучше
Да уж..... Я прекратил свою десятилетнюю деятельность веб-мастера в 19-ом году. Даже идеи "собирать структуру сайта на лету" не существовало. По крайней мере, ни от одного знакомого веб-мастера не слышал, ни на одном форуме об этом не читал. ОБН: Хах, ну да, как можно было забыть о JSON и технологии Ajax.... ну или схожей с ней. МегаМаркет подгружает только часть сайта. Для обычных пользователей HTML структура находится внутри документа, а не через БД или другие способы. Короче, не на лету. И да, у них есть "мусор" в коде..... я в своей работе никогда подобного не допускал.
я не заметил, где тут скрытый Api если он открытый и отображается через dev tools. Скрытый это к примеру мобильный Api, который на прямую без того же токена не работает.
видимо имеется не тот "скрытый api" который хвакеры находят с помощью ffuf или kiterunner (ожидал нечто подобное от данного видео если честно), а просто api не внесённый в документацию.
@@kulichevskiy т.е. АПИ который торчит наружу в ентернет и доступен каждому это скрыты АПИ для внутреннего пользования?) А если к этому АПИ сгененрировать документацию на основе имеющегося har это будет уже полускрытое АПИ?
Как??? Как вы узнали, что я гуглили парсинг?) Как не странно, часто когда у меня возникает проблема, вы выпускаете нужное мне видео. Это точно мне поможет! Есть способ парсить гугл запросы подписчиков!?)
Для "бытового уровня" очень даже сильно! 💪🏻 Скоро автор начнёт не только preserve logs галочку ставить, но и фильтровать галочкой XHR запросы только (дабы убрать запросы к статике и прочим картинкам) и в HAR файл выгружать это всё (по которому смотреть удобно, это JSON по сути всех запросов с их параметрами), а потом ещё "немного помучавшись" с этой ручной работой - плюнет и возьмёт Selenium (Playwright тот же для Python) и будет запускать и "оседлает" своим кодом Headless Browser (а может даже и не headless, запускают же китайцы клик-фермы на куче дешёвых телефонов) дабы выглядеть для сайтов прям "юзером индентичным настоящему" ;-)
@@apristen скорость разработки на запросах не сильно выше, а преимуществ куча. требует меньше ресурсов для работы, сильно быстрее, формат ответа меняется не так часто, как фронтенд. конечно стоит сказать, что если есть всякие защиты, то придется использовать браузер, но если таких проблем нет, то на запросах решение лучше.
@@apristen ну такое скорее всего сложно будет. Я иногда запускаю браузер чтоб получить токен или куку через авторизацию, а потом в запросах использую, уже без браузера.
Дорогие зрители, помните, что аутентификация и авторизация разные процессы! Автор использует авторизацию описывая аутентификацию, что в корне ложно. Аутентификация - вход в систему используя (email, password). Авторизация - проверка прав доступа (удаление, чтение, обновление и создание)
По моему, при поиске нужного запроса по части значения, быстрее будет в каждом запросе развернуть весь ответ(через Expand recursively в контекстном меню) и базовым ctrl+F найти нужное значение ctrl + F - также работает на все активные запросы в NetWork. Так что в теории, можно каждый запрос не разворачивать))
не всегда такое поможет, особенно когда запросов много во время сессии происходит (метрика или реклама подгружается например) Устанешь каждый запрос это все перепроверять
Алексей привет! Очень интересное видео, спасибо) Сам так иногда делаю. Я не большой спец в Пайтоне и работе со скрытыми АПИ, по этому есть вопрос -- нет ли опыта взаимодействия таким образом с Яндекс Маркетом? Нужно доставать отзывы и вопросы по товарам и отвечать на них. Стандартный апи не имеет методов ответа. Конкретно с Маркетом есть проблема с получением Sk -- некий секрет кей, который передается с каждым запросом на маркет (headers). Метода получения этого ключа напрямую нет. Есть skid -- вероятно айдишник, который на беке в яндексе достает секрет кей. Я пока не смог победить)
Кстати "любителям похимичить" ещё hint: пишете свой плагин (локально можно любой ставить, не требуется одобрения store браузера) который имеет полный доступ к DOM ну и также может задетекченное вообще локально сам в тот же CSV или JSON загенерить, получается всё работает прямо в браузере и доступ наиполнейший к контенту (круче только уже через webdriver если), ну единственный "минус" это на JS надо писать, а не Python.
опять ютуб почему то удаляет мои комменты. В общем если кратко, то я писал, что в detools можно увидеть js код, который инициировал запрос, далее найдя место отправки запроса, можно легко найти место получения ответа. Остается с помощью того же devtools перезаписать js код, что бы полученный ответ отправлять прямиком на свой api
Делал подобный парсер для wildberries на c# с библиотекой парсинга и исполнения JS кода, там пришлось делать несколько вложенных запросов потому что перед запросами к данным происходит вычисление к какому домену обращаться для получения данных
Ну какие же они скрытые, если прямо во вкладке Network палятся, кек. Я вот как-то столкнулся с тем, что бэк мне вернул JSON с описанием ошибки вида «я попытался послать такой-то запрос на такой-то урл и получил такой-то status code», и внезапно это внутреннее апи было доступно извне и не было обложено рейт-лимитами, в отличие от того внешнего слоя, в который ходил собственно браузер. Проработало это, увы, не слишком долго (я сделал бесплатного бота, который помогал людям записываться в какую-то бюрократическую структуру), но было забавно.
есть только проблема одна и это если есть ключ апи (причём если он генерируется), потому что ключ ты нигде не достанешь если сам сайт не дает его. Если его не кинуть в запрос он просто не ответит за запрос, а получить его практически невозможно, особенно генерируемый.
Как сократить видео до 5 минут. 1. Находим запрос 2. Тыкаем на него правой кнопкой мыши сохранить как curl 3. Вставляем в postman 4. В postman в раздели копирования запроса, выбираем python и копируем готовый код на pythone 5. Вставляем в свой проект
@@bahrambobojonov44 какая разница ты запрашиваешь свои данные или браузер. Эти api для клиенской стороны, и ты как клиент запрашивай сколько хочешь свои данные. Не законно если ты запрашиваешь данные другого пользователя без его разрешения
Интересно было бы такое разобрать на примере сайта, который получает сигнал через открытые сокеты. То есть сокет почти всегда открыт, прилетает новый заказ, и после чего он превращается на сайте в элемент. Как быть в такой ситуации? К сокетам подключился, но в этом случае получаю только оповещение on_message, оно возвращает {'message':'update'}
Я не очень понимаю зачем долго искать руками если нам известно айди карточки или название есть после filter. И куку можна использовать старую а , лучше всего генерить руками так администрация сайта не надоест ограничений за автоматизациию.
Интересно, а почему CORS политика не сработала? По идее API на бэкенде должно принимать запросы исключительно от собственного фронтенда и тогда ваши эксперименты не удались бы.
А смысл всех этих действий? Это самые обычные python запросы на сервер, мы просто скопировали его с нетворка, люди которые пишут фронт на пайтоне не получили совершенно никакой новой инфы.
Серьезно? Гайд по инспектору в 24 году?... Причем тут "скрытые API" вообще? Если они инспектятся, то они уже априори публичные) Я бы понял, если б скрытые смогли обнаружить, когда сервак получает откуда-то данные (сторонние сервисы, бд, конверторы, аналитика и тд) и перехватывать оттуда данные (как вариант). Но не просто обратиться к CRUD сервера и назвать это парсингом, тем более скрытых апи...
@@kulichevskiy а они не блочат как-то прямые запросы не от браузера? ну там детект user activity (точнее отсутствие такого activity), например, многие сейчас даже управляемый через webdriver браузер детектят, например, юзер "слишком быстр" и не двигает мышкой = скорее всего бот, блочим. приходится мышкой двигать прям automation тулзой и немного рандомизировать user journey по сайту чтобы сойти за настоящего прям юзера.
Мне как сотруднику Мегамаркета отвечающему за часть кабинета продавца, где гуляет в видео автор, стало интересно, что же там за "Секретные API" такие ))
Кстати, не подскажете, вы случайное не слышали где-нибудь в коридоре у кулера, нет ли планов выпустить нормальное API для получения статистики? Я с радостью выпущу инструкцию :)
А это законно? На сколько я понимаю это может привести к некоторым проблемам при большом количестве одновременных запросов к апи. Понятно что видео не об этом, но мы все понимаем для чего нужен парсинг. А так же не забывайте, есть ещё так же условия использования. Ну душно согласен, но в целом как считаете могут ли быть проблемы с законодательной стороны?
Очень много лишней и неполной информации, начиная про то, что существует только запрос-ответ. Страшно рассказывать автору про вебсокеты - там видимо видео про новые скрытые технологии будет или всякие rpc. А так - видео бесполезное от слова совсем, чисто кликбейт - название, не тратьте время.
@@ilyin_sergey ну и + нужно один раз нажать на любой запрос а после нажать сочетание клавиш, в появившемся окне вставляешь искомый текст, среди всего хлама найдутся только те запросы где есть искомый текст, не важно в заголовках ответе или data)
Доброго времени суток!
Пара замечаний, возможно автору будет интересно:)
1 Для того чтобы не бегать по каждому запросу во вкладке Network, можно воспользоваться поиском (cmd+f), который ищет вхождение текста по всем запросам (загаловкам, запросам, ответам)
1.1 У Вас уже стояла настройка, но лучше думаю для людей оговорить явно, что чтобы отображались именно ответы/запросы к серверу, нужно выбрать вкладку Fetch/XHR
2 Чтобы не копировать поотдельности хедеры и данные запроса, можно нажать на зпрос правой клавишей мыши, выбрать копировать, и копировать как curl или как fetch запрос и тп
2.1 Я находил оналйн сервисы, которые из curl могу сгенерировать запрос на любом языке, в том числе и на питоне, если запросов несколько, гораздо удобнее делать так, может сэкономить время:)
Надеюсь было полезно:)
Спасибо большое за инфу!!!
в постмане тоже есть такая функция curl в python. не всегда в Fetch/XHR удается найти нужные запросы. иногда в самом html уже есть ответ от апи с данными
честно говоря, я из другой тематики, ткнул на видос увидев "скрытые api" и подумал что какой-то фаззинг (ffuf, kiterunner) будет, "всё как мы SecOps любим", но оказалось речь про парсинг и "бытовое применение", впрочем сделано видео вполне хорошо, советы: фильтровать XHR запросы, выгружать в HAR (это JSON), ну и там смотреть - scope станет меньше и искать нужное станет легче.
7:49
Лайкайте, чтоб знали. В google chrome есть поиск во всех ответах сервера. Включить можно так:
Customize and control DevTools > More tools > Search.
Только еще надо добавить что Fiddler / Charles лучше использовать в таких целях а не дефолтную хром девтулзу
@@theeaster2839в браузере не чем не хуже.
@@theeaster2839
Postman все это собрать в коллекцию можно за полчаса
В реальности все обычно сложнее, content-length хедер стоило генерировать динамически все-таки, исходя из отправляемого запроса, иначе это не будет работать даже при добавлении одного символа в пароль. И нередко бывает, что сервер пытается защититься от того, что скрытый API использует кто попало, например, с помощью куков, которые вы полностью выкинули из запроса, часто приходится разбираться и с их генерацией и корректной отправкой.
Все так. Для решения этой задачи куки, к счастью не понадобились. Иначе пришлось бы их в хедер добавлять тоже. Вообще, конечно, лучше всего извлекать данные, когда у сервиса есть нормальный публичный API. К сожалению, Мегамаркет его пока не сделал :(
..
"куков...и с их генерацией" что?))) видео достойное своего зрителя) взять умные слова, перемешать и выдать, для хомячков пойдет, они вон на своей стороне куки генерируют, ага это так и работает))
Такого рода хедеры requests автоматически генерирует, совершенно незачем их явно передавать
Отличный урок, я в восторге!!!! Как раз вчера задумался о 2 проектах, а там как раз нужно делать сбор данных с апи + сессия. Выручил❤️
Я вцелом понимал как это работает, но была проблема с пониманием откуда брать "токены" или "сессии", а теперь вижу что все работает проще пареной репы, большое спасибо за информацию!!!
какое чудо, что я тебя нашел! Спасибо тебе огромное. Я только начинаю в этом ковыряться, а ты просто находка для меня!
Когда перешёл сюда предполагал поиск скрытых api, которые недоступны обычному пользователю и не отображаются в network, потому что обычным пользователем просто не вызываются. Но в целом для темы парсинга это действительно полезная вещь. А я всё таки скорее из тематики безопасности и уязвимостей. Приходилось находить некоторые как я описал действительно скрытые api. Занимает это обычно гораздо больше времени и нужно для других целей, но это совсем другая история.
А можете рассказать , вы для нахождения скрытых апи использовали вордлисты и если да то какие ?
@@garrag8421 не думаю, что это лучшее место для обсуждения таких вопросов.
И тем не менее мне интересно ответить.
Для начала решил попробовать найти хоть что-то с малым словарём от dirb, потом, когда убедился в том, что можно найти что-то не прикрытое, взял словари Api из SecList.
Вот эта тема уже реально интересная)
Походу многие безопасники кликнули по видосу из-за названия))
Тоже подумал про фаззинг
самому теперь интересно, что за фаззинг такой :)
Реально
жиза
А еще, можно сначала освоить доступный инструментарий. В котором внезапно, есть запись последовательности действий, которые потом можно использовать либо как готовый сценарий для папитира, либо как лог который намного проще исследовать.
Отличный контент, здорово что ты захватываешь сразу несколько смежных тем, связанных с основной
Спасибо большое! Прям то что доктор прописал для новичка.
Я действительно подумал о том, что ролик
Заглянул в комментарии
Теперь стало интересно что такое фаззинг 😅
Словно посмотрел экранизацию романа Агаты Кристи. Ранее натыкался на ролики автора, но смотрел мельком, предвзято(т.к. подавляющее set() авторов показывают или мишуру, или типовые примеры).
Ролик зашел - ничего не сказать. Очень классные сравнения, несколько деталек пазла легли в общую картину. Спасибо
Посмотрел, на половине пути поставил лайк. Досмотрел - подписался. Крутая подача, всё понятно по запросам.
Супер подача, автор молодец все коротко и в то же время ясно, без воды. Если весь курс будет сделан точно так же, то это бомба ) Аш питон захотелось освоить ) Смотрел просто ради интереса, знаком с веб программированием, но не с питон. Хотелось бы посмотреть видео, где есть что то действительно сложное для понимание, но простым языком
я удивлён, насколько всё понятно и спокойно ты объясняешь
1 - бывает что делают защиту от таких вот любителей))
2 - бывает что все работает только через токен
3 - бывает что отправляют в апи зашифрованные данные (или отправляют контрольную сумму, которую вычисляют своим специальным алгоритмом
UDP: используйте постман для проверки и анализа скрытого апи)) а уже потом в код переносите
Думаю тоже как нибудь видос запилить о подводных камнях этого дела))
Все так, надо каждый раз разбираться, как работает API, как устроена авторизация и т.п.
Про Postman - я его так и не освоил нормально, мне удобнее сразу в код ¯\_(ツ)_/¯
А ещё бывает Cloudflare))).
для этого есть webdriver же, берёте им "осёдлываете" браузер ну и даже user activity (хаотичные микродвижения мышкой) делаете иногда чтобы "за своего сойти".
ещё вариант есть с написанием своего extension для браузера (локальная установка - никого спрашивать разрешения не надо, браузер поддастся, вы же development делаете типа) у extension - весьма широкие полномочия доступа к DOM и не только.
оба метода выше - это как в том анекдоте про обвес: "дырка в гирьке, дырка в гирьке... как будто нельзя дырку в калькуляторе просверлить! 😀"
Сделай такой видос, желательно на вход через JWT)))
@@NoName-tb1uj Там суть в принципе такая же, только вместо sessionId нужно запрашивать jwt токен, который сервер обычно отдает в response авторизации
любой пароль из ввода можно посмотреть если открыть инструменты разработчика и выбрать этот элемент(input). в свойстве type будет passord. просто меняем на text
*Инфа, конечно, для самых маленьких и начинающих, но подано неплохо*
Крутые усы!)
Про парсинг в космическом масштабе жду ролик
Хотелось бы такое же видео про скрытые api как покупателя для сайта ozon и WB. Чтобы мониторить цены
А ты сам напиши 😅
Спасибо мне в своих хакерских навыках пригодится, а самое главное так хорошо и отлично поясняешь! Низкий поклон! Подписка👍
Ого, как же круто знать JS.
😮
Интересное видео, но хотелось бы услышать про CORS заголовки, ведь бывает что сервер может вроде как не отдать данные просто так
Спасибо за логин и пароль. Шутка 😁 Как всегда Круто.
51к просмотров и 9к подписок. Ребят подписывайтесь и ставьте лайки. Автор - ТОП.
userSDPass, они что реально пароль передают в ответе
@@phnmnful ну типа это закрытое пространство, хотя всё равно мегатупо
@@ДавидЛазаров-т8ц, т.о. ещё они не хеши паролей хранят.
Я бы на твоем месте burp suite использовал, это более серьезный инструмент для реверс инженеринга api. Есть вещи, которые в devtools будет удобнее посмотреть, но burp в большинстве случаев лучше
Да уж.....
Я прекратил свою десятилетнюю деятельность веб-мастера в 19-ом году. Даже идеи "собирать структуру сайта на лету" не существовало. По крайней мере, ни от одного знакомого веб-мастера не слышал, ни на одном форуме об этом не читал.
ОБН:
Хах, ну да, как можно было забыть о JSON и технологии Ajax.... ну или схожей с ней.
МегаМаркет подгружает только часть сайта. Для обычных пользователей HTML структура находится внутри документа, а не через БД или другие способы. Короче, не на лету.
И да, у них есть "мусор" в коде..... я в своей работе никогда подобного не допускал.
я не заметил, где тут скрытый Api если он открытый и отображается через dev tools. Скрытый это к примеру мобильный Api, который на прямую без того же токена не работает.
можно заменить скрытый на «внутренний»
суть в том, что его явно делали для внутреннего пользования и, например, не публиковали документацию
видимо имеется не тот "скрытый api" который хвакеры находят с помощью ffuf или kiterunner (ожидал нечто подобное от данного видео если честно), а просто api не внесённый в документацию.
@@kulichevskiy тогда это называется "незадокументированный"
@@kulichevskiy т.е. АПИ который торчит наружу в ентернет и доступен каждому это скрыты АПИ для внутреннего пользования?) А если к этому АПИ сгененрировать документацию на основе имеющегося har это будет уже полускрытое АПИ?
@@sas408 "незадокументированный" эмм, этот термин не применяется к данному случаю)
Как???
Как вы узнали, что я гуглили парсинг?)
Как не странно, часто когда у меня возникает проблема, вы выпускаете нужное мне видео. Это точно мне поможет!
Есть способ парсить гугл запросы подписчиков!?)
круто!!! спасибо за понятный урок ❤❤❤
Спасибо за видео! Все очень понятно
что же за золотой человек! спасибо
Это очень простой пример. Вот есть юла, например, где требуется постоянно обновлять токен и кукисы при запросе.
Для "бытового уровня" очень даже сильно! 💪🏻
Скоро автор начнёт не только preserve logs галочку ставить, но и фильтровать галочкой XHR запросы только (дабы убрать запросы к статике и прочим картинкам) и в HAR файл выгружать это всё (по которому смотреть удобно, это JSON по сути всех запросов с их параметрами), а потом ещё "немного помучавшись" с этой ручной работой - плюнет и возьмёт Selenium (Playwright тот же для Python) и будет запускать и "оседлает" своим кодом Headless Browser (а может даже и не headless, запускают же китайцы клик-фермы на куче дешёвых телефонов) дабы выглядеть для сайтов прям "юзером индентичным настоящему" ;-)
если возможно, лучше обходиться без selenium'а и playwright'а)
@@InojjHacker почему? легковесность? на данный момент наблюдаю куда важнее скорость разработки, TTM (Time To Market).
@@apristen скорость разработки на запросах не сильно выше, а преимуществ куча. требует меньше ресурсов для работы, сильно быстрее, формат ответа меняется не так часто, как фронтенд. конечно стоит сказать, что если есть всякие защиты, то придется использовать браузер, но если таких проблем нет, то на запросах решение лучше.
@@InojjHacker в целом соглсен. интересно как Auth0 вот так запросами сделать ;-) есть видео?
@@apristen ну такое скорее всего сложно будет. Я иногда запускаю браузер чтоб получить токен или куку через авторизацию, а потом в запросах использую, уже без браузера.
Дорогие зрители, помните, что аутентификация и авторизация разные процессы! Автор использует авторизацию описывая аутентификацию, что в корне ложно. Аутентификация - вход в систему используя (email, password). Авторизация - проверка прав доступа (удаление, чтение, обновление и создание)
ага, все верно, спасибо за поправку!
Бомба! 💣
крутое видео, раскрыло глаза на многое. Спасибо большое
Хех.
Спасибо, подписался.
А что у вас за плагин в VSCODE которые фон у блоков кода выделяет, подскажите пожалуйста.
Дорогие зрители, сайт генерируется динамически, а не автоматически
По моему, при поиске нужного запроса по части значения, быстрее будет в каждом запросе развернуть весь ответ(через Expand recursively в контекстном меню) и базовым ctrl+F найти нужное значение
ctrl + F - также работает на все активные запросы в NetWork. Так что в теории, можно каждый запрос не разворачивать))
не всегда такое поможет, особенно когда запросов много во время сессии происходит (метрика или реклама подгружается например)
Устанешь каждый запрос это все перепроверять
Алексей привет! Очень интересное видео, спасибо) Сам так иногда делаю. Я не большой спец в Пайтоне и работе со скрытыми АПИ, по этому есть вопрос -- нет ли опыта взаимодействия таким образом с Яндекс Маркетом? Нужно доставать отзывы и вопросы по товарам и отвечать на них. Стандартный апи не имеет методов ответа. Конкретно с Маркетом есть проблема с получением Sk -- некий секрет кей, который передается с каждым запросом на маркет (headers). Метода получения этого ключа напрямую нет. Есть skid -- вероятно айдишник, который на беке в яндексе достает секрет кей. Я пока не смог победить)
Кстати "любителям похимичить" ещё hint: пишете свой плагин (локально можно любой ставить, не требуется одобрения store браузера) который имеет полный доступ к DOM ну и также может задетекченное вообще локально сам в тот же CSV или JSON загенерить, получается всё работает прямо в браузере и доступ наиполнейший к контенту (круче только уже через webdriver если), ну единственный "минус" это на JS надо писать, а не Python.
опять ютуб почему то удаляет мои комменты. В общем если кратко, то я писал, что в detools можно увидеть js код, который инициировал запрос, далее найдя место отправки запроса, можно легко найти место получения ответа. Остается с помощью того же devtools перезаписать js код, что бы полученный ответ отправлять прямиком на свой api
вот только у некоторых сервисов captcha 3 не даст получить id таким способом, тоже думал, что речь пойдет о действительно скрытом api
Спасибо
пушка!!!!
Делал подобный парсер для wildberries на c# с библиотекой парсинга и исполнения JS кода, там пришлось делать несколько вложенных запросов потому что перед запросами к данным происходит вычисление к какому домену обращаться для получения данных
Ну какие же они скрытые, если прямо во вкладке Network палятся, кек. Я вот как-то столкнулся с тем, что бэк мне вернул JSON с описанием ошибки вида «я попытался послать такой-то запрос на такой-то урл и получил такой-то status code», и внезапно это внутреннее апи было доступно извне и не было обложено рейт-лимитами, в отличие от того внешнего слоя, в который ходил собственно браузер. Проработало это, увы, не слишком долго (я сделал бесплатного бота, который помогал людям записываться в какую-то бюрократическую структуру), но было забавно.
есть только проблема одна и это если есть ключ апи (причём если он генерируется), потому что ключ ты нигде не достанешь если сам сайт не дает его. Если его не кинуть в запрос он просто не ответит за запрос, а получить его практически невозможно, особенно генерируемый.
Как сократить видео до 5 минут.
1. Находим запрос
2. Тыкаем на него правой кнопкой мыши сохранить как curl
3. Вставляем в postman
4. В postman в раздели копирования запроса, выбираем python и копируем готовый код на pythone
5. Вставляем в свой проект
Можно вместо postman все сделать онлайн на сайте curlconverter и также получить хоть код на питоне, хоть на любом другом популярном языке
норм, вот только каждый раз логинишся при запуске кода. неплохо бы узнать время хранения этого сешн_айди и логиниться только в случае если он истёк.
Если это скрытый api то какой тогда открытый? Я так понимаю то что вы назавете о крытым, вообще не api
подскажите, пожалуйста, как у вас без print появляется output?
просто я в VSCode работаю с Jupyter-ноутбуками.
А с мобильных приложений можно хакнуть, какие API они дергают?
Use wireshark
так парсинг это же когда из html достают данные а не с прямого проксирования api
А если капча вылезет? Постоянно стучаться в АПИ как минимум может фильтр сработать, особенно если авторизация )
Давай разбор Яндекс карт)
А что там? Там ведь нормальный API есть
Интересно нафига бек выдает куки, если при запросе игнорирует их отсутствие)
а можно сделать данный код через асинхронность(asycio, aiohttp)?
Можно Selenium использовать
подскажите, каким-то образом отслеживают такие действия? Насколько легально и законно делать запросы по скрытым апи?
не воруйте чужие данные и все будет ок :)
свои данные скачивать можно сколько угодно
@@kulichevskiy имеете ввиду под своей учеткой сколько угодно можно скачивать свои данные в том числе скрытым апи?
@@bahrambobojonov44 теоретически :)
а вообще читайте условия пользования сервисом, если они там не запрещают, то можно
@@bahrambobojonov44 какая разница ты запрашиваешь свои данные или браузер. Эти api для клиенской стороны, и ты как клиент запрашивай сколько хочешь свои данные. Не законно если ты запрашиваешь данные другого пользователя без его разрешения
Крутое видео, усы тоже крутые
Отличный видос. Минус безопастности сберу
объясняешь как боженька) если бы использовал зеннопостер вместо питона, то купил бы курс
кайф
Админка понятно, а вот товары так не получается забрать, пробовал? Может я просто что то делаю не так
Алексей, главное, пароль не забудьте сменить, а то засветили.
Дада, мы осознанно :)
Все хорошо, спасибо!
А если на сайте JWT, как можно выполнять вход в кабинет таким образом?
Хммм, надо попробовать. Если честно, я не очень глубоко понимаю, как там подпись генерируется.
Подскажите пожалуйста!
На какой должености можно работать, если иметь такие знания?
Если __только__ эти - Junior Python dev, например
Директор НИИ!!! Зарплата +100500 попугаев!
Интересно было бы такое разобрать на примере сайта, который получает сигнал через открытые сокеты. То есть сокет почти всегда открыт, прилетает новый заказ, и после чего он превращается на сайте в элемент. Как быть в такой ситуации? К сокетам подключился, но в этом случае получаю только оповещение on_message, оно возвращает {'message':'update'}
А можете дать пример такого сайта?
@@kulichevskiy написал вам в ТГ
А если общение происходит по GraphQL?
сниффер в помощь, например wireshark
Можно копировать с вкладки нетворк в формате curl и любым онлайн конвертором "curl to code" сразу рабочий код получаешь
1:38 на заборе аналитики у них нарисован писюн
Файлы с точкой в начале это скрытые файлы в linux, поэтому .env)))
сделайте видео-урок на тему парсинга Bitrix24, есть задача получить данные с него, но не могу даже авторизацию победить
Хммм, так у них ведь есть API: dev.1c-bitrix.ru/rest_help/
Лучше использовать его, наверное
Почему фильтром в нетверке не пользуешся ?
для наглядности :)
сяб за видос
Я не очень понимаю зачем долго искать руками если нам известно айди карточки или название есть после filter. И куку можна использовать старую а , лучше всего генерить руками так администрация сайта не надоест ограничений за автоматизациию.
Всплывает капча и вашь код не сработает
Интересно, а почему CORS политика не сработала? По идее API на бэкенде должно принимать запросы исключительно от собственного фронтенда и тогда ваши эксперименты не удались бы.
Расскажи, пожалуйста, про заголовки запросов и ответов подробнее, что там, какая инфа, как они формируются.
Я к тебе всю Школу 21 приведу с: Чудесное видео
Привет. Чем пользуешься для рисования схем 3:30 ?
Просто какое-то рандомное приложение для рисования на айпаде. Concepts, кажется.
А потом Сбер в один прекрасный момент заблочит акк за нарушение правил использования)
я слабо товары парсит?
не админку а самих таваров то есть характеристики фото описание цену и так далее
А смысл всех этих действий? Это самые обычные python запросы на сервер, мы просто скопировали его с нетворка, люди которые пишут фронт на пайтоне не получили совершенно никакой новой инфы.
Лучше попрсить апишку, тк при любом изменении все упадет либо постоянно сидеть и подстраивать свой код под их новую реализацию.
На 100% согласен
То есть получается у них ни корс, ни валидация токенов не работают? Это хорошее)
ну корсы тока на стороне браузера отработают, а вот с то что без кук работает это странно да))
я тоже удивился, когда увидел
Серьезно? Гайд по инспектору в 24 году?... Причем тут "скрытые API" вообще? Если они инспектятся, то они уже априори публичные)
Я бы понял, если б скрытые смогли обнаружить, когда сервак получает откуда-то данные (сторонние сервисы, бд, конверторы, аналитика и тд) и перехватывать оттуда данные (как вариант). Но не просто обратиться к CRUD сервера и назвать это парсингом, тем более скрытых апи...
ОЗОН и Вб слабо?
Если вы про API, то вот видео про WB - ruclips.net/video/OFGC_2vM5A4/видео.html
а вот про Озон - ruclips.net/video/SiwxoV6ZCXU/видео.html
@@kulichevskiy а они не блочат как-то прямые запросы не от браузера? ну там детект user activity (точнее отсутствие такого activity), например, многие сейчас даже управляемый через webdriver браузер детектят, например, юзер "слишком быстр" и не двигает мышкой = скорее всего бот, блочим. приходится мышкой двигать прям automation тулзой и немного рандомизировать user journey по сайту чтобы сойти за настоящего прям юзера.
Мне как сотруднику Мегамаркета отвечающему за часть кабинета продавца, где гуляет в видео автор, стало интересно, что же там за "Секретные API" такие ))
🤫
Пожалуйста, не баньте нас 😇
Кстати, не подскажете, вы случайное не слышали где-нибудь в коридоре у кулера, нет ли планов выпустить нормальное API для получения статистики? Я с радостью выпущу инструкцию :)
Выдал базу
Мне одному кажется, что это именно он озвучивает тик токи 'что ты выберешь'
Берлинский акцент очень похож на мордовский))
А это законно? На сколько я понимаю это может привести к некоторым проблемам при большом количестве одновременных запросов к апи. Понятно что видео не об этом, но мы все понимаем для чего нужен парсинг. А так же не забывайте, есть ещё так же условия использования. Ну душно согласен, но в целом как считаете могут ли быть проблемы с законодательной стороны?
А будет запись вебинара?
Будет, но не публично, а для тех, кто записался. Так что записывайтесь :)
Очень много лишней и неполной информации, начиная про то, что существует только запрос-ответ. Страшно рассказывать автору про вебсокеты - там видимо видео про новые скрытые технологии будет или всякие rpc.
А так - видео бесполезное от слова совсем, чисто кликбейт - название, не тратьте время.
Жаль этого добряка. 😂
Нажимаешь на любой запрос Ctrl+F, берёшь с страницы данные, название, к примеру, и всё, вместо 30 минут 5 сек.)
Нужно пройти 300 страниц. 300 раз нажимать будете?
@@ilyin_sergey искомый тест всегда находится в одном экземпляре)
@@ilyin_sergey ну и + нужно один раз нажать на любой запрос а после нажать сочетание клавиш, в появившемся окне вставляешь искомый текст, среди всего хлама найдутся только те запросы где есть искомый текст, не важно в заголовках ответе или data)
давай посложнее