Пишем парсер на JavaScript | QA

  Рет қаралды 69,020

Campfire School | Ivan Petrychenko

Campfire School | Ivan Petrychenko

Күн бұрын

Пікірлер: 110
@aleksandrstaetskiy5687
@aleksandrstaetskiy5687 5 жыл бұрын
Просто топовейший видос. И отличный пример использования рекурсии :)
@kotikvacia9970
@kotikvacia9970 5 жыл бұрын
Спасибо вам за ваши курсы !
@windcrack8404
@windcrack8404 Жыл бұрын
Спасибо большое. Видео очень сильно помогло. Мой учитель по js опять выручил!
@sonopro9920
@sonopro9920 3 жыл бұрын
Как всегда магия)) магия с безграничными возможностями!!!👏
@Интернетобразование-о1и
@Интернетобразование-о1и 3 жыл бұрын
Офигенное объяснение!!!
@placid3495
@placid3495 5 жыл бұрын
А я думал парсеры сложно)
@Maxim9575
@Maxim9575 9 ай бұрын
потому что это не парсер, а обход DOM дерева, ничего общего с настоящими парсерами тут нет
@DenisK-to8lf
@DenisK-to8lf 3 ай бұрын
@@Maxim9575 А как по Вашему можно спарсить данные с сайта?
@Maxim9575
@Maxim9575 3 ай бұрын
@@DenisK-to8lf разберитесь с определением что такое парсер. Ну а так парсинг подразумевает получение исходного кода и затем его анализ, который приведет к конкретному результату. Браузер по вашему как вам отображает страницу? Правильно, использовав DOM-дерево для визуализации содержимого. А перед этим он получает исходный код страницы, а затем производит разбор в 2 этапа: лексический анализ исходного текста, а затем синтаксический анализ. И результатом этих двух этапов будет DOM-дерево.
@АдильМиерманов
@АдильМиерманов Жыл бұрын
это идеальный урок, спасибо огромное
@gennadyga2257
@gennadyga2257 4 жыл бұрын
Иван спасибо за объяснение! учусь на твоем курсе.
@denisbielishev
@denisbielishev 4 жыл бұрын
Интересно было бы увидеть как реальный парсер сделать, со вложенными страницами по типу интернет магазина
@SerhiyLytvynenko
@SerhiyLytvynenko 2 жыл бұрын
В чем проблема? Когда парсишь все данные , находишь нужную ссылку, отправляешь get-запрос по этому адресу и парсишь уже эти данные
@ivanrussui4126
@ivanrussui4126 3 жыл бұрын
Крутяк Иван, было полезно. Благодарю.
@yarlykanov
@yarlykanov 5 ай бұрын
Отличный урок! Спасибо. Покажите, пжлста, как парсить сообщения, которые пришли на емайл от определённого отправителя?
@Vitaliy-1C
@Vitaliy-1C 4 жыл бұрын
Очень грамотно объяснил! Спасибо.
@drotikdrotik5941
@drotikdrotik5941 4 жыл бұрын
Лучший преподаватель, учусь у него на Юдеми отличный курс по Джаваскрипту! Всем его рекомендую)
@coldym
@coldym 4 жыл бұрын
Как прогресс? Нашел работу?
@userman6193
@userman6193 2 жыл бұрын
Good! Thanks!)
@nshebeko
@nshebeko 5 жыл бұрын
Спасибо Иван, круто было бы если это показать на реальных проектах, в практическом применении, например берём готовый парсер и разбираем как он работает. Хочется понимать зачем это мы всё делаем, то бишь мотивы. Понятно что заголовки кому то нужно спарсить, но кому? и где?
@campfireschool
@campfireschool 5 жыл бұрын
Окей. Приведу реальный кейс пока на словах) У нас была задача с одного большого веб-ресурса вытащить всю информацию о компаниях, которые на нем размещены. Страниц и компаний было очень много, с каждой вручную вытаскивать название, логотип, контактные данные и прочее очень долго, муторно и бесполезно :) Вот для такой задачи мы и использовали парсер, по структуре чуть сложнее, тк затрагивалась серверная часть.
@campfireschool
@campfireschool 5 жыл бұрын
@@FaineLito1055 Практически невозможно) Все что попадает в браузер можно вытащить)
@campfireschool
@campfireschool 5 жыл бұрын
@@FaineLito1055 Главное, чтобы конечному пользователю это не навредило)) А так самое противное - это изображения. Из них текст не вытащить, увы)
@aximas778
@aximas778 4 жыл бұрын
Парсер отличный, но вот только я пытался его попробовать как вы на хабре консоль выдала undefined Пересмотрел код везде всё ок на локалке работает а в других местах получаю undefined
@AlexM-ox7io
@AlexM-ox7io 4 ай бұрын
Не проще ли на ноде библиотекой Puppeteer собрать все что тебе нужно указывая классы?))
@wickedtorpedo75
@wickedtorpedo75 4 жыл бұрын
30 строк самого гениального кода, спасибо за урок
@kharkiv_inres5127
@kharkiv_inres5127 4 жыл бұрын
Значет хорошо разобратся и можно брать заказы на парсер страници!
@СергейЛогинов-у4ъ6к
@СергейЛогинов-у4ъ6к 2 ай бұрын
А можно ли как-то парсить данные сайта, не открывая его страницу на стороне клиента, но при этом отфильтрованный результат парсинга возвращать клиенту?
@oleksiimarchenko2177
@oleksiimarchenko2177 4 жыл бұрын
Спасибо большое за Ваши курсы, очень доходчиво! Советую всем своим друзьям которые хотят войти в ІТ))
@MrDmi3i
@MrDmi3i 2 жыл бұрын
есть сайт со спортивными играми... там периодически появляются игры на которые я бы хотел попасть как участник, но постоянно не успеваю попасть в лимит игроков (например - ближайшая игра баскетбол, уровень новичок... ). Как реализовать механизм чтобы мне например в телегу приходило оповещение что на сайте появилась дата игры для регистрации?
@web-bp6lj
@web-bp6lj 2 жыл бұрын
Друзья, пожалуйста, объясните: для чего нужен локальный сервер в работе парсера? Какова его роль? Благодарю.
@stasonnl777
@stasonnl777 4 жыл бұрын
Здравствуйте. А как парсить с другого сайта? Например я хочу спасрсить с другого сайта заголовки и разместить их на своем сайте.
@sergey5806
@sergey5806 4 жыл бұрын
Разобрался как это сделать?
@Moskalineludy
@Moskalineludy 3 жыл бұрын
fetch
@PavelPavel-vh3fs
@PavelPavel-vh3fs 4 жыл бұрын
Спасибо за крутой и понятный урок
@sergeishmelev8000
@sergeishmelev8000 2 жыл бұрын
А можно создать подобный парсер для соц сетей, чтобы вытаскивал количество постов, подписчиков и просмотров и лайков?
@СергейКомыза
@СергейКомыза 4 жыл бұрын
Спасибо за труд! А есть у вас курс по углубленному изучению парсинга на js? Забирать инфу с нужных сайтов и т.д?
@campfireschool
@campfireschool 4 жыл бұрын
Увы, но пока нет :(
@igorstarodubtsev8037
@igorstarodubtsev8037 3 жыл бұрын
Не могли бы видосик запилить как спарсить с сайтов ссылки на фильмы, постеры, названия фильмов для создания плейлистов
@АлександрАлександр-х6б3ы
@АлександрАлександр-х6б3ы 3 жыл бұрын
Добрый день! попробовал использовать данный парсер не на локальном сервере, а через tamper monkey. вот только слушалка DOMContentLoaded не работает, а работает window.addEventListener('load', () => {});
@ВячеславИванов-д1р
@ВячеславИванов-д1р Жыл бұрын
Можно ли разместить скрипт на Firebase? Есть необходимость получать обновления определенной страницы в телеграм на телефоне. То есть чтобы получать обновления без открытого браузера и даже отключенного компьютера. Делать запросы периодически и проверять не появился ли новый пост. Если появился каким то образом отправлять этот пост сообщением в телеграм. Есть у кого-то идеи насчет этого?
@zachfenton608
@zachfenton608 3 жыл бұрын
Спасибо большое
@Каналдлясаморазвития-я1я
@Каналдлясаморазвития-я1я 4 жыл бұрын
Вместо сервера можно использовать node js и express
@CalmDepth
@CalmDepth 3 жыл бұрын
интересно. правильно я понимаю,что такой конструкцией shadow-dom не выпотрошить?
@L0w1y
@L0w1y 3 жыл бұрын
А как сделать так, чтобы он брал данные с внешней страницы. Например я хочу сделать чтобы релизы гитхаба подгружал и показывал когда я открываю Index.html
@ashercon1337
@ashercon1337 5 жыл бұрын
Сейчас прохожу ваш курс по js на udemy, хотел сказать спасибо за доходчивое объяснение тем. Вопрос по видео (ещё не посмотрел до конца) мы сможем парсить только страницу, к которой мы подключили наш js скрипт ? то есть мы не сможем дать парсеру url другого сайта и ждать от него данных?
@campfireschool
@campfireschool 5 жыл бұрын
Спасибо) Как я и говорил ближе к концу ролика - да, этот простенький скрипт будет работать только на одной странице. Для более сложного взаимодействия нам уже понадобится серверная часть. В любом случае - смысл особо не изменится)
@ashercon1337
@ashercon1337 5 жыл бұрын
Ivan Petrychenko получается для создания парсера других сайтов нужно использовать node js ? Знаете ли вы node, будет ли курс по нему ?
@campfireschool
@campfireschool 5 жыл бұрын
Ilya Tyurin да, в следующем году планирую записать)
@ДаниилЕлин-ж1п
@ДаниилЕлин-ж1п 4 жыл бұрын
@@campfireschool Спасибо за курс по js)
@hopmnc
@hopmnc 5 жыл бұрын
гуд джоб, спасибо.
@aleksandrstaetskiy5687
@aleksandrstaetskiy5687 5 жыл бұрын
Канал просто кладезь годноты :)
@campfireschool
@campfireschool 5 жыл бұрын
Спасибо)
@sergey5806
@sergey5806 4 жыл бұрын
Круто как всегда)) Интересно было бы посмотреть на реализацию nodejs приложения)) Ты так круто поясняешь, что кажется все настолько простым.
@campfireschool
@campfireschool 4 жыл бұрын
Спасибо)
@dmitriystoyanov933
@dmitriystoyanov933 4 жыл бұрын
да, парень реально профессионал. Печально, что нам всем кажется простым когда смотрим, а сесть и самим с нуля написать - начинается просто обсиралово и ни строчки из себя выдавить не получается))
@dimualdos
@dimualdos 3 жыл бұрын
Хочется узнать про создание бота в телеграм
@ondrui
@ondrui 3 жыл бұрын
Иван, спасибо за ролик, очень интересная тема была. Я попробовал этот скрипт на странице из курса вашего " Полный курс по JavaScript + React - с нуля до результата " FOOD - там мы динамически на страницу часть контента добавляем (меню, например) - и эту часть парсер не видит! Не подскажите, как обойти эту проблему? Я добавил скрипт в метод then и получил данные из меню, но если доступа нет к коду страницы как быть?
@oldzas
@oldzas 3 жыл бұрын
Мне не хватило хождение по пагинатору и открывание страниц и только потом парсинг
@vadicus6534
@vadicus6534 3 жыл бұрын
Я тоже об этом думаю. как пройти весь сайт если мы парсим только на одной странице.
@JuliaDemchenko-c3q
@JuliaDemchenko-c3q 3 жыл бұрын
Здравствуйте! А можно показать на примере Инстаграм. Допустим есть страници профилей и с них нужно получить информацию ( количество подписчиков, подписок и публикаций) с сохранением этих данных в Excel? Возможно ли так сделать, буду очень благодарна 😊
@Freedom_Code
@Freedom_Code 4 жыл бұрын
Иван, знаю , что не по теме вопрос,, здравствуйте, подскажите пожалуйста , каким образом можно в react.native парсить файлы .txt и возможно ли это. Единственное, что пришло на ум -- это подключать библиотеку fs из node.js , но оправдано ли это?
@EvgenichTalagaev
@EvgenichTalagaev 2 жыл бұрын
Вот бы пример с парсингом реального сайта в сети.
@ЯрославВлас-б6т
@ЯрославВлас-б6т Жыл бұрын
У меня вопрос. А как подключить данный скрипт на другие сайты автоматически?
@nikolaydemchenko6741
@nikolaydemchenko6741 4 жыл бұрын
Видео понравилось, только не могу понять момент с рекурсией в начале, почему в условии проверяется количество потомков входящего элемента, а не его потомка? Ведь по факту в боди в любом случае потомков больше одного, значит функция будет запускаться для каждого, даже если у него нет своих потомков, и не получится ли так, что на том у кого 1 потомок, рекурсия не будет запущена, хотя у самого потомка будет много своих потомков? Не правильнее ли просто проверять if(node.childNodes){} ? Или там какая-то другая логика? Кодю недавно, может чего не знаю, объясните пожалуйста добрые люди)
@ЭзизК
@ЭзизК 4 жыл бұрын
Круто✊
@dmitriy2502
@dmitriy2502 2 жыл бұрын
Здравствуйте! Спасибо за урок! Подскажите, а если результат ни отправлять на сервер а просто писать в текстовый файл на компьютер? Как это реализовать? Спасибо!
@sergey9627
@sergey9627 2 жыл бұрын
Тоже есть задача, собирать информацию в excel файл, вам удалось найти ответ ?
@dmitriy2502
@dmitriy2502 2 жыл бұрын
@@sergey9627 Пока оставили реализацию, решение ни нашли. Но по похожей тематике были ролики внутри которых есть реализация, но вот к сожалению прошло более 3 мес, ни помню где было.
@itconstructor1570
@itconstructor1570 4 жыл бұрын
Добрый день, а как курсы валют с сайта автоматически парусить.? Всегда ведь в консоль лесть со своим кодом не будешь
@campfireschool
@campfireschool 4 жыл бұрын
Обычно курсы валют отдаются по открытому API . Например minfin.com.ua/developers/api/
@vadicus6534
@vadicus6534 3 жыл бұрын
@@campfireschool так платить надо, а можно просто парсить?)))
@ИгорьКиселев-ч7ь
@ИгорьКиселев-ч7ь 4 жыл бұрын
Ппивет Ivan ! В JavaScript я еще только начинаю учиться. Из твоего объяснения все понятно кроме того, что такое ноды . Может я чего то не понимаю? Объясни пожалуйста откуда они берутся! Спасибо
@campfireschool
@campfireschool 4 жыл бұрын
Игорь Киселев это DOM-узлы на странице) не элементы, а именно узлы. Кроме элементов сюда входят переносы строк, изображения и тд.
@ИгорьКиселев-ч7ь
@ИгорьКиселев-ч7ь 4 жыл бұрын
@@campfireschool скажи пожалуйста где я могу почитать про ноды вводное.
@campfireschool
@campfireschool 4 жыл бұрын
@@ИгорьКиселев-ч7ь learn.javascript.ru/dom-nodes Например, вот здесь.
@ruslan2676
@ruslan2676 4 жыл бұрын
Как сделать так, чтобы скрипт стягивал инфу, например, с альбома Вконтакте (описания под фото)? И при этом не нужно было каждый раз заходить ручками это в консоль писать? В идеале сделать так, чтобы конфигурация выглядела таким образом: 1. Вставил ссылку. 2. Прописал какие ноды цеплять. А дальше отправить себе на сайт в таблицу. Так же интересует как это настроить чтобы обновлялось хотя-бы раз в сутки или по нажатию Хочу научится это делать, куда копать?)
@campfireschool
@campfireschool 4 жыл бұрын
Ruslan Anisimov добрый день. Все это делается уже с помощью бэк-технологий. Нужен сервер и соответствующие скрипты, написанные на node.js, php, ...
@AliaksandrHrankin
@AliaksandrHrankin 4 жыл бұрын
Спасибо за урок. А если я хочу, чтобы мне куда-то сохранялись результаты парсинга?
@campfireschool
@campfireschool 4 жыл бұрын
Вы можете отправлять результаты на свой VPS сервер и там их сохранять в любом удобном формате. Т.е. php/node.js/... будут записывать результат в json, txt... если говорить просто)
@AliaksandrHrankin
@AliaksandrHrankin 4 жыл бұрын
@@campfireschool это понятно. щас вот гуглю, как принимать его и обрабатывать в файле php. Думаю, как преобразовать это в csv
@AliaksandrHrankin
@AliaksandrHrankin 4 жыл бұрын
@@campfireschool что-то никак не могу справиться с CORS. Написал простой парсер и простой php. На локальном сервере локальный же сайт парсит нормально и сохраняет json файл. Положил php файл на хостинг. Со своего сайта сохраняет файл, а с других не хочет. Не пойму, что и как настроить. Все, что нагуглил, не могу разобраться
@pashoki6880
@pashoki6880 3 жыл бұрын
А вообще есть разница на каком языке писать парсер, многие пишут его на питоне ?
@campfireschool
@campfireschool 3 жыл бұрын
Да, будет зависеть его «мощность» и среда работы. Поэтому python по этим параметрам подходит очень хорошо
@pashoki6880
@pashoki6880 3 жыл бұрын
@@campfireschool подскажите, а сильно ли js в этом плане уступает ?
@campfireschool
@campfireschool 3 жыл бұрын
@@pashoki6880 если использовать node.js - то нет
@pashoki6880
@pashoki6880 3 жыл бұрын
@@campfireschool Подскажите, а как реализовать возможность автоматического парсера, когда не нужно заходить и вставлять в консоль скрипт, чтобы отслеживать динамически изменяющуюся информацию на странице автоматически
@zizzxiii2714
@zizzxiii2714 3 жыл бұрын
выводит только {id: 101} и все
@muborizDev
@muborizDev 4 жыл бұрын
спасибо
@paljm345
@paljm345 3 жыл бұрын
Блин, а вот как дальше работать с полученной информацией?? Она выводится только в консоль.лог. Как мне закинуть ее в переменную и дальше обрабатывать??
@vitaliylufter8765
@vitaliylufter8765 3 жыл бұрын
Ну как бы парсер, но как бы и не совсем, какой-то детский. Вопрос: зачем нам парсить свой хтмл? А как получить сторонний хтмл? Как ходить по страницам сайта который парсим? Как обойти блокировки и защиту от неделательной активности? Как парсить не на своём компе а в режиме online, на сервере? Как подключить прокси, как косить под реального пользователя(это к вопросу про обход защиты)? Как капчу разгадывать автоматически? Парсер это сложная система, а не вот это вот.
@campfireschool
@campfireschool 3 жыл бұрын
Именно поэтому я и проговорил в начале, что это довольно плюшевый парсер, который сделан по просьбам студентов на чистом js :)
@namirGO
@namirGO 3 жыл бұрын
Дякую
@ticheroi
@ticheroi 4 жыл бұрын
recursy что такое?)) recursion мб?)
@supfiger
@supfiger 3 жыл бұрын
я один подумал, что видео началось в скорости 1.5x? :))
@MrLuckfinder
@MrLuckfinder 3 жыл бұрын
Прохожу сейчас его курсы на юдеми. Единственные курсы, которые приходится смотреть на 0,75 скорости. И то, не всегда успеваю.
@bdg5242
@bdg5242 5 жыл бұрын
Парсер по моему сайту работает, но вот когда решил также попробовать на хабре как ты в видосе. Получается ошибка: Uncaught SyntaxError: Identifier 'body' has already been declared at :1:1
@bdg5242
@bdg5242 5 жыл бұрын
как я понял видать какие то сайты блокируют это, а какие то нет. На вк вот работает
@alexg1431
@alexg1431 4 жыл бұрын
Просто переименуй const body например в const body12123 и всё. Тебе ошибка говорит что такая константа уже есть.
@Alex-yh7pr
@Alex-yh7pr 4 жыл бұрын
18:15 6 объектов
@o_opedro4044
@o_opedro4044 3 жыл бұрын
👌 -👍 ...
@forgiveness_denied
@forgiveness_denied 5 жыл бұрын
шось може по бек енду
@АлександрФедченко-л6ю
@АлександрФедченко-л6ю 5 жыл бұрын
Python server
@stylizestylish973
@stylizestylish973 3 жыл бұрын
6:30
@РамизМирзаев-х5к
@РамизМирзаев-х5к 5 жыл бұрын
🤓
@vladpronin5033
@vladpronin5033 4 жыл бұрын
Пожалуйста, перестань коверкать английские слова на свой лад, произношение у тебя не самое лучшее. Звучит отвратительно, после пяти минут просто замутил. Поработай над собой, мб подписчиков прибавится
@ashur1k
@ashur1k 2 жыл бұрын
xpath для слабаков! Только цикл по всем узлам! Только хардкор! 1) Открываем "DevTools" 2) Переходим на вкладку "Console" 3) Выполняем в консоли следующее выражение: $x('//h1 | //h2 | //h3 | //h4 | //h5') 4) ПРОФИТ
@ibrohimbobojonov6197
@ibrohimbobojonov6197 3 жыл бұрын
Спасибо
Парсинг на JAVASCRIPT за 10 мин!
9:08
WEB РАЗРАБОТКА
Рет қаралды 18 М.
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
She made herself an ear of corn from his marmalade candies🌽🌽🌽
00:38
Valja & Maxim Family
Рет қаралды 18 МЛН
Node.js is a serious thing now… (2023)
8:18
Code With Ryan
Рет қаралды 663 М.
Java Annotation. Пишем свой парсер.
21:59
javaRoadMap
Рет қаралды 1,6 М.
Подробный план изучения JavaScript с нуля
27:08
Campfire School | Ivan Petrychenko
Рет қаралды 152 М.
Выполняем реальный проект на JavaScript | ч.1
48:29
Campfire School | Ivan Petrychenko
Рет қаралды 117 М.
Как работать с сервером в JavaScript ч.1 | AJAX
31:45
Campfire School | Ivan Petrychenko
Рет қаралды 34 М.