NODE.JS SCRAPER 🚀 [ Парсинг данных с сайта на nodejs, puppeteer и cheerio ]

Поділитися
Вставка
  • Опубліковано 18 жов 2024

КОМЕНТАРІ • 61

  • @partyofx5823
    @partyofx5823 Рік тому +1

    ну вроде реализовано годно, ип без лишниз деталей и без воды , коей до часа подобные кейсы раздувают, и у меня кним нет претензий на часовом ролике очевидно больше реклам казали чем в 20 минутном.
    с учетом выпуска материала до отключения монетизации ютуба для нашего региона , прям мое почтение .
    жаль что канал не развиваетя, но если вдруг кейсы про нейронки например в связке с нодой выйдут то я буду знать)

    • @partyofx5823
      @partyofx5823 Рік тому +1

      уверен это самая популярная пратика разработки на юубе как минимум до конца лета

  • @akudrenko
    @akudrenko 4 роки тому +7

    Шикарно! Только прошу, в следующий раз делай шрифт чуть больше)

  • @RikkyBro
    @RikkyBro 4 роки тому +3

    Респект за видео, очень хорошо объясняешь, без воды - чётко и по делу. Продолжай!

  • @DevALine
    @DevALine 5 років тому +6

    Отличный контент. Ждём новое видео👍

  • @mikhailreznichenko8035
    @mikhailreznichenko8035 4 роки тому +2

    Видос который я искал)

  • @Dmitriy15486
    @Dmitriy15486 5 років тому +1

    Все отлично, буду прорабатывать полученную инфу. Формат записи понравился. Можно сделать сканирование букмекерских контор ))) и искать вилки. Автор, пили дальше ... Например, интернет-магазин на node js. Лайк и спасибо.

  • @rrahll
    @rrahll 4 роки тому +1

    Топовый контент, подписался.
    Спасибо за видос, чётко объяснил всё.

  • @twayl1124
    @twayl1124 3 роки тому +1

    Спасибо за контент, теперь иду в травматологию, лечить треснувший череп из-за обилия непонятной инфы.

  • @F10.117
    @F10.117 4 місяці тому

    Братишь спасибо

  • @qrthack
    @qrthack 5 років тому +10

    больше парсинга с помощью puppeteer

    • @duckduckjs
      @duckduckjs  5 років тому +4

      Скоро будет видос, в котором добавлю многопоточность этому парсеру, работать будет быстрей 💨

  • @dimovich85
    @dimovich85 5 років тому +2

    Круто и интересно, спасибо!

  • @yevgeniy-ten3482
    @yevgeniy-ten3482 3 роки тому

    Спасибо бро подача супер

  • @egrafe
    @egrafe 2 роки тому

    По стилю напомнило SORAX уроки.

  • @sinaktenone9882
    @sinaktenone9882 4 роки тому

    нену годнота же, лайк, подписка!. Давай теперь пиртупир чат на вебсокетах

  • @Элвис-л5я
    @Элвис-л5я 2 роки тому +1

    Делаю в 2022 году. Нода ругается на "import"
    Ну и не разобран момент когда период выпуска "2018 - н.в."
    В видео видно что "н.в." парсится как NaN, а по идее "н.в." - это текущий год (что то типа (new Date).getfullYear())

  • @andreydmitriyev4582
    @andreydmitriyev4582 2 роки тому

    А классификаторы можно как - то спарсить из фильтров?
    Столкнулся с проблемой - при попытке простмотреть элемент выпадающего списка и при любом клике этот самый список исчезает из разметки.

  • @Сергей-д7с7о
    @Сергей-д7с7о 4 роки тому

    На серьезных сайтах делают защиту от парсинга, она работает примерно так: при загрузке страницы сервер отправляет запрос клиенту "с просьбой " указать номер версии и название браузера, если в ответе будет браузер отличный от (мозилла, хром и т.п) то страница загрузится не полностью, или вообще не загрузится.По этому такой парсер будет работь не везде.

    • @cr0w312
      @cr0w312 4 роки тому +4

      puppeteer работает на базе хромиума, и кто мешает послать заголовки с кастомным юзерагентом?

  • @Karl93rus
    @Karl93rus 4 роки тому

    Я правильно понимаю, что каждый раз, когда мы идём на карточку тачки с деталями, открывается и закрывается инстанс браузера? Это кажется слишком затратным, не?

  • @klamathmomento8280
    @klamathmomento8280 2 роки тому

    а как парсить динамично обновляющиеся страницы(SPA), где стили обновляются с каждым новым событием, а инфа содержится в атрибутах и дочерних спанах?

  • @daniilchistyakov3087
    @daniilchistyakov3087 3 роки тому

    Привет, не знаете с помощью чего можно спарсить ссылки на файлы, которые не фигурируют в DOM, но видны во вкладке Network?

  • @dembitsky_youtube
    @dembitsky_youtube 3 роки тому

    А можно данный скрипт развернуть к примеру на своём сервере и парсить данные себе на сайт , когда они будут обновляться ?

  • @seniorqa_auto5367
    @seniorqa_auto5367 5 років тому

    Работает, парсит, все здорово. Вопрос: почему так медленно? Список ссылок получает достаточно быстро, а потом на обработке каждой ссылки долго вычисляет и записывает 3 параметра.

    • @duckduckjs
      @duckduckjs  5 років тому +1

      В том виде, в котором сейчас скрапер, он делает запросы последовательно на каждую страницу, отсюда и невысокая скорость, тут дело не в количестве параметров, которые он берет с каждой из страниц а именно в последовательных запросах к каждой странице.

    • @seniorqa_auto5367
      @seniorqa_auto5367 5 років тому +1

      @@duckduckjs Спасибо. Понятно, что цель ролика показать возможности модулей и т.п. Кстати, надо отметить, что цель достигнута ) Просто стал повторять, скорость не устроила и для получения параметров использовал тот же модуль needle. В общем, изменил уже половину, оставил только структуру. Структура хороша, не буду менять.

    • @duckduckjs
      @duckduckjs  5 років тому +3

      @@seniorqa_auto5367 Рад что видео понравилось, скоро выйдет новое про чат на React и Socket.IO с использованием хуков и styled-components

    • @seniorqa_auto5367
      @seniorqa_auto5367 5 років тому

      @@duckduckjs Отлично. Жду ) Да, видео понравилось. Коротко, сжато, все по делу. Вместе с тем, все понятно. Круто.

  • @andreydmitriyev4582
    @andreydmitriyev4582 4 роки тому

    Спасибо большое, такое вопрос, а если итераций в цикле - сотни, то есть вариант подчищать за собой собственные вкладки и повлияет ли это на память?

    • @mariokun
      @mariokun 4 роки тому +1

      Andrey Dmitriyev после того как произошло посещение, браузер закрывается

  • @AliaksandrHrankin
    @AliaksandrHrankin 4 роки тому +1

    а зачем puppeteer если можно просто get запросом получить html со страницы?

    • @phat80
      @phat80 4 роки тому

      Ну так это же тупые мартышки, которые где-то увидели и повторяют. Если не требуется имитировать действия пользователя, то puppeteer нахрен не нужен.

  • @ДанилаШевадзуцкий

    А что делать если кодировка таргетовой страницы win1251 и результат получается абракадабра? Со страницами utf-8 все работает нормально.

  • @megatheshkaf
    @megatheshkaf 4 роки тому

    Что делать, если данные на странице обновились, но программа выводит в консоль текст как при первом запросе? Даже спустя время или после перезапуска. Например был тег #4127, стал #1234, но программа все равно выводит #4127.

  • @ypcyc
    @ypcyc 3 роки тому

    Почему в коде везде "cherio" вместо "cheerio"?

  • @sudosnoop
    @sudosnoop 5 років тому

    +1 👍

  • @twelve9046
    @twelve9046 5 років тому

    Какой дистрибутив используешь?

    • @duckduckjs
      @duckduckjs  5 років тому

      Twelve, Ubuntu 18.04, немного кастомизировал внешний вид только

  • @Dmitriy15486
    @Dmitriy15486 5 років тому

    почему то не хочет заполняться carsItems, вроде pageContent в консоле отображается как положено в виде html файла, только html не сформирован.

    • @duckduckjs
      @duckduckjs  5 років тому

      Дмитрий, вы можете посмотреть все примеры кода здесь - github.com/alexej3ajtsev/nodejs-scrapper
      Просто выполните след. команды:
      mkdir {любое название}
      git clone git@github.com:alexej3ajtsev/nodejs-scrapper.git {любое название}
      cd {любое название}
      npm install
      mkdir data
      npm start
      Вы сможете посмотреть, что скрапер работает, а также сможете сравнить код написанный вами с кодом в соответствующих файлах созданной папки

    • @Dmitriy15486
      @Dmitriy15486 5 років тому

      @@duckduckjs к сожалению не работает, но все равно спасибо за показанный подход

    • @seniorqa_auto5367
      @seniorqa_auto5367 5 років тому

      @@Dmitriy15486 1. Чтобы заработало надо в проект добавить пустую папку data.

    • @Dmitriy15486
      @Dmitriy15486 5 років тому

      @@seniorqa_auto5367 все добавлено, как я вижу, проблемо в том, что загружается не полностью сформированный html

    • @seniorqa_auto5367
      @seniorqa_auto5367 5 років тому

      @@Dmitriy15486 Загрузку html url = auto.ru/catalog/cars/all/?page_num=1
      проверил здесь (puppeteer.js)
      export async function getPageContent(url) {
      console.log(' url = ', url)
      try {
      const browser = await puppeteer.launch(LAUNCH_PUPPETEER_OPTS)
      const page = await browser.newPage()
      await page.goto(url, PAGE_PUPPETEER_OPTS)
      const content = await page.content()
      console.log(' content = ', content)
      browser.close()
      Вроде все полностью грузится.

  • @DrZlo19
    @DrZlo19 4 роки тому

    Где новые видосы?

  • @rootadmin4546
    @rootadmin4546 11 місяців тому

    Не видно ничего, шрифт прибавил бы )

  • @bugaga8144
    @bugaga8144 3 роки тому

    Крутое видео, но у меня хрен работает
    > scrapper@1.0.0 start C:\Users\dvoro\Documents
    odejs-scrapper-master
    > npm run clean && babel-node index.js
    > scrapper@1.0.0 clean C:\Users\dvoro\Documents
    odejs-scrapper-master
    > rm -rf data && mkdir data
    "rm" не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! scrapper@1.0.0 clean: `rm -rf data && mkdir data `
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the scrapper@1.0.0 clean script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\dvoro\AppData\Roaming
    pm-cache\_logs\2021-03-08T15_25_52_607Z-debug.log
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! scrapper@1.0.0 start: `npm run clean && babel-node index.js`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the scrapper@1.0.0 start script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    npm ERR! A complete log of this run can be found in:
    npm ERR! C:\Users\dvoro\AppData\Roaming
    pm-cache\_logs\2021-03-08T15_25_52_627Z-debug.log

    • @kuemi901
      @kuemi901 Рік тому

      ты консольные команды линукса в виндус пишешь

  • @denial3874
    @denial3874 3 роки тому

    DUCK DUCK JS: почему все так мелко, нехрена ж не видно

  • @ffffe-u8p
    @ffffe-u8p 4 роки тому +1

    Автор, подтяни английский. А то аж вздрогнул от "чалк".