Парсинг информации с сайта при помощи Node.js

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024
  • Поддержка канала: reptily.ru/donate
    В данном видео ролике я покажу как написать код для парсинга информации с сайтов при помощи Node.js
    Скрипт парсинга: goo.gl/7X1Fus
    Необходимые модули: goo.gl/jwPJcM
    Список модулей:
    async cheerio css-select domelementtype domhandler dom-serializer htmlparser2 iconv-lite inherits lodash needle url
    Модуль cheerio: cheerio.js.org/
    #nodejs #урокипрограммирования #программирование

ความคิดเห็น • 81

  • @blefon1112
    @blefon1112 6 ปีที่แล้ว +10

    Спасибо большое, информации на русском языке почти нет, есть пару статей и теперь ещё это видео. Ещё раз спасибо не останавливался.

  • @nicetracksofficial
    @nicetracksofficial 4 ปีที่แล้ว

    как мне получить список ссылок на все песни в списке на сайте zvuk com? Дело в том что там после нажатия на кнопку играть, она появляется в плеере. не пойму каконо формируется

    • @nicetracksofficial
      @nicetracksofficial 4 ปีที่แล้ว

      все понял. в скриптах есть tracksid массив. и запросы zvuk com/api/tiny/track/stream?id=67483584&quality=high

    • @openweb-php
      @openweb-php  4 ปีที่แล้ว

      сайт пользуется методом получения данных rest api. После клика он запрашивает у своего сервиса данные и потом их уже отрисовывает. Вам здесь нужно посмотреть по какому адресу он получает данные, и уже с ними работать. На канале есть методики по работе с rest api

  • @vmbp2312
    @vmbp2312 6 ปีที่แล้ว +8

    Друг! прошло довольно много времени с публикации видео.
    Но может будет полезно.
    Библиотеки быстрее всего, добавлять через "bower".
    Для работы "bower" - нужны (node, npm и git).
    Установка "bower" npm install -g bower
    Установка библиотек через "bower" bower install cheerio
    Удобно? Однозначно колоссальная экономия времени. Рекомендую.

    • @vmbp2312
      @vmbp2312 6 ปีที่แล้ว +2

      Ах да, чуть не упустил:) путь для библиотек.
      Устанавливаем "bower" в корень нашего проекта, создаем файл (без названия, но с расширением ".bowerrc" (использую sublime text - редактор)
      в ".bowerrc" вписываете путь, для установки библиотек.
      Больше информации можно узнать на оф сайтах npm и bower
      {"directory" : "app/libs/"}

    • @WiseBunny
      @WiseBunny 5 ปีที่แล้ว +4

      @@vmbp2312 bower умер как проект. Лучше юзать Yarn или npm

  • @xuserz
    @xuserz 3 ปีที่แล้ว +1

    мне нравиться когда ты говорить "очень знаково да?"

  • @eurorock5912
    @eurorock5912 6 ปีที่แล้ว +4

    Дружище - лайк тебе за позитивность и юмор!!)) По-больше бы таких людей! И подписка.

  • @romanvasiljev8715
    @romanvasiljev8715 6 ปีที่แล้ว +2

    Хотел сделать парсер на php начал искать на js а тут ты
    Есть раскрученные каналы с убогим контентом, а у тебя канал с хорошим, побольше бы тебе подписчиков
    ЛАЙК И ПОДПИСКА

  • @_TGrey_
    @_TGrey_ 5 ปีที่แล้ว +3

    Хорошо объяснил!
    Если кому-то будет интересно, у меня есть похожий видос с парсером. Всем бобра!

    • @Xlo240
      @Xlo240 5 ปีที่แล้ว

      Интересно!

    • @ruslanvolovik2745
      @ruslanvolovik2745 4 ปีที่แล้ว

      Скинь ссылку тогда

  • @mnemonicpie
    @mnemonicpie 5 ปีที่แล้ว +1

    чуть не обосрался с русских субтитров к видео. Спасибо

  • @АлександрСкафандров
    @АлександрСкафандров ปีที่แล้ว

    Только это называется не parsing, а scraping.

  • @АлександрБравис-с3о
    @АлександрБравис-с3о 4 ปีที่แล้ว

    Это самый лучший парсер который я только видел))

  • @user-kh1fjhfshht
    @user-kh1fjhfshht 3 ปีที่แล้ว +1

    "Да и со многими русскими словами есть проблемы" :) Самоирония - это гуд. Спасибо за урок!

  • @ДалерКамолов-г5т
    @ДалерКамолов-г5т 4 ปีที่แล้ว

    С реакт проектах получать данные не получается

  • @misterohara9858
    @misterohara9858 4 ปีที่แล้ว

    А вообще возможно сделать расширение для хрома, которое будет выводить информацию с другого сайта.

  • @ВячеславИванов-д1р
    @ВячеславИванов-д1р 6 ปีที่แล้ว +2

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

    • @ОльгаМакарова-о6г
      @ОльгаМакарова-о6г 6 ปีที่แล้ว

      Женат?

    • @ВячеславИванов-д1р
      @ВячеславИванов-д1р 6 ปีที่แล้ว +2

      странный вопрос, особенно тут. я нет.

    • @darktmdarkness6952
      @darktmdarkness6952 5 ปีที่แล้ว

      а чего там сложного, делаешь реквест, получаешь от них респонс, в теле респа лежит вся страница. Соответственно разбираешь её и достаешь нужную тебе инфу, все просто.

    • @РулонОбоев-м6к
      @РулонОбоев-м6к 5 ปีที่แล้ว +1

      @@ВячеславИванов-д1р ну как там дела с парсингом?

  • @megatheshkaf
    @megatheshkaf 4 ปีที่แล้ว

    Как получить обновлённые данные страницы? console.log(res.body) выводит в консоль текст как у первого запроса, даже спустя время или после перезапуска программы. Например на странице был тег #4127, а стал #1234, но программа всё равно выводит #4127.

    • @openweb-php
      @openweb-php  4 ปีที่แล้ว

      здесь совсем другой подход нужен. Сайт получает такую информацию скорей всего rest api запросами, их нужно отследить и брать с них информацию. На канале есть видео об этом.

    • @megatheshkaf
      @megatheshkaf 4 ปีที่แล้ว

      @@openweb-php Спасибо за ответ, рассмотрю эту тему подробнее.

  • @valerkan2
    @valerkan2 2 ปีที่แล้ว

    Здравствуйте, подскажите пожалуйста у вас есть видео как сделать Java скрипт для захода на сайты? Помоги пожалуйста не могу найти где либо, может есть какой нибудь пример, моих знаний в этой области не хватает ни на что)

    • @openweb-php
      @openweb-php  2 ปีที่แล้ว

      Добрый день, одним js там не обойтись. Видео такого нет.

    • @valerkan2
      @valerkan2 2 ปีที่แล้ว

      @@openweb-php это настолько сложно?

  • @artemnovikov4302
    @artemnovikov4302 4 ปีที่แล้ว

    Хорошее вищео, но однозначно нужно дополнить выводлм в базу данных, сохранпнрем в массив по ключам + фото. Так же потом сортировкой и пагинаципй в веб интпрфейсе.

  • @MrColins710
    @MrColins710 4 ปีที่แล้ว

    еще б урок как данные в google таблицы записывать, было б идеально

  • @vovamriya2084
    @vovamriya2084 5 ปีที่แล้ว

    Очень тихо, клавиатура и то громче. Но урок хороший, у меня даже ошибок не было. А еще прикольные переходы видео - помехи.

  • @randomtgbot
    @randomtgbot 4 ปีที่แล้ว

    Огромнейшая благодарность за инфу и жирный ЛАЙК!

  • @kiminomeha
    @kiminomeha 4 ปีที่แล้ว

    Спасибо огромное! Искал материал про парсинг данных, но не мог никак понять, а здесь все так просто и понятно. Удачи вам

  • @arturkalbukov6856
    @arturkalbukov6856 6 ปีที่แล้ว

    не нужно архивом прикладивать зависимости))
    просто в описание видео список приложи и все. Пример, npm i needle, npm i cheerio .. и тк.

  • @misterohara9858
    @misterohara9858 4 ปีที่แล้ว

    Нео, ты попал в матрицу.

  • @daredevil8999
    @daredevil8999 6 ปีที่แล้ว

    Круто контент!!!! Жаль раньше не увидел - столько говнокода понаписал(( однозначно подпичка

  • @andreyliskin340
    @andreyliskin340 4 ปีที่แล้ว

    Молодец парень.Успехов тебе.))))))))))))))

  • @vladislovefpv1948
    @vladislovefpv1948 5 ปีที่แล้ว

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

    • @openweb-php
      @openweb-php  5 ปีที่แล้ว

      доки на библиотеку needle глянь, там можно как и куки отправлять так и загаловки по не обходимости

  • @kostyanp95
    @kostyanp95 4 ปีที่แล้ว

    Спасибо за урок!
    Скажи, а что делать, если контент рендерится JS? И в самом первом запросе в Dev tools нужный контент еще не отрендерился.
    Сейчас очень много контента именно рендерится разными фреймворками типа Vue, Angular, React.

    • @openweb-php
      @openweb-php  4 ปีที่แล้ว

      В большинстве случаи такой контент можно получить из тех же api серверов от куда подучает сам сайт. Это более правильный подход и мнения затратный. Но есть есть доступы не обхожимость получит уже соендерный контент, то поможет electron, про него есть тоже видео на канале

  • @ВячеславИванов-д1р
    @ВячеславИванов-д1р 6 ปีที่แล้ว

    некоторые сайты могут идентифицировать уникального пользователя по параметрам canvas hash без куки, ip, заголовков. Как поменять этот canvas hash и отправить этот параметр измененным?

    • @openweb-php
      @openweb-php  6 ปีที่แล้ว

      технологи canvas fingerprint это сбор отпечатка клиента, расширение монитора, версия и тип браузера, предустановленные плагины и тд. Я честно еще не разу не пытался надуривать такую систему но в теории можно набрать необходимых параметров и отправлять в загаловке

  • @ernesteverstov1809
    @ernesteverstov1809 4 ปีที่แล้ว

    Спасибо

  • @deniskondratenko196
    @deniskondratenko196 5 ปีที่แล้ว

    Спасибо тебе чел ты открыл для меня целый мир

  • @derkachbohdan2371
    @derkachbohdan2371 5 ปีที่แล้ว

    Как создать многопоточный парсер с сохранением в базу и выводом на свой сайт?

    • @openweb-php
      @openweb-php  5 ปีที่แล้ว

      Часть ответа уже есть в видео, для параллельных запросов поможет библиотека async, а дя базы есть куча хороших интервейсов или можно использовать библиотеку mysql

  • @eliascaval8765
    @eliascaval8765 5 ปีที่แล้ว

    а есть возможность использовать xpath в этой библиотеке?

    • @openweb-php
      @openweb-php  5 ปีที่แล้ว +1

      Да можно, не что этому не мешает

  • @NikolaShoOtNik
    @NikolaShoOtNik 5 ปีที่แล้ว

    Спасибо за урок. Лайк+подписка.

  • @denissekret541
    @denissekret541 5 ปีที่แล้ว

    Подскажите как, парсить если есть пагинация?

    • @openweb-php
      @openweb-php  5 ปีที่แล้ว

      В чем там проблема? пагинации такие же страници, если она есть то парсим куда видут кнопки пагинации, а затем уже страници

  • @IKarachev
    @IKarachev 6 ปีที่แล้ว

    почему ты такую убогую ide юзаешь? есть же бесплатный visual studio code

    • @openweb-php
      @openweb-php  6 ปีที่แล้ว

      больше наверно привычка, еще есть phpstorm который пиарится на каждом шагу сейчас

  • @redshy5487
    @redshy5487 6 ปีที่แล้ว

    Спасибо за информацию, ваше видео очень помогло.

  • @bogdanyaskevych5713
    @bogdanyaskevych5713 5 ปีที่แล้ว

    Спасибо за урок)

  • @alexgrygoriev3322
    @alexgrygoriev3322 6 ปีที่แล้ว

    Привет, большое тебе спасибо!

  • @МаксимКучиров-е9г
    @МаксимКучиров-е9г 6 ปีที่แล้ว

    Однозначно подписка

  • @ДмитрийБогданов-п7ж
    @ДмитрийБогданов-п7ж 6 ปีที่แล้ว

    Прям в точку. То что искал

  • @upsvit1
    @upsvit1 6 ปีที่แล้ว

    Молодец, позитивно!!!

  • @РоманМосолов-ы1ш
    @РоманМосолов-ы1ш 5 ปีที่แล้ว

    Спасибо за знания.

  • @VitalyGulden
    @VitalyGulden 6 ปีที่แล้ว

    Друзья у кого есть работающий парсер с сайта на OpenCart?

  • @romanvasiljev8715
    @romanvasiljev8715 6 ปีที่แล้ว

    а что если нету www.? Будет парсить?

    • @openweb-php
      @openweb-php  6 ปีที่แล้ว

      Roman Vasiljev или протоколы они должны быть сайтах

  • @islamamanov2563
    @islamamanov2563 4 ปีที่แล้ว

    здравствуйте,а как парсить страницу которая доступна только после авторизации?

    • @openweb-php
      @openweb-php  4 ปีที่แล้ว

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

    • @islamamanov2563
      @islamamanov2563 4 ปีที่แล้ว

      Сайт которую я хочу парсить не предоставляет никакой токен,чтобы войти необходимо ввести логин и пароль.Подскажите пожалуйста,Как передать серверу логин и пароль в этом случае,вот ссылка на ту страницу:my.tuit.uz/students/site/index
      пишу на node js,код:
      var request=require('request');
      var URL= 'my.tuit.uz/students/site/index';
      request(URL,(err,res,body)=>{
      if(err)
      {
      throw err;
      }
      console.log(body);
      });

    • @openweb-php
      @openweb-php  4 ปีที่แล้ว

      после того как вы введете логин и пароль, вам выдадут токен, его как правило записывают в куки, отследите какие куки были до и после.

  • @qrthack
    @qrthack 5 ปีที่แล้ว

    es6 не завезли?

    • @openweb-php
      @openweb-php  5 ปีที่แล้ว

      на момент записи видео, стояла древнаяя нода

  • @СергейКурганов-о2э
    @СергейКурганов-о2э 6 ปีที่แล้ว +1

    async??? Да проще promise.all использовать.

  • @ilmar5571
    @ilmar5571 5 ปีที่แล้ว

    помоги пожалуйста как сделать чтоб картинки были слитно и через запятую .img-thumb-item img,img-thumb-item img,

    • @openweb-php
      @openweb-php  5 ปีที่แล้ว

      не совсем понял какая у вас задача, может так? img
      .img-thumb-item

    • @ilmar5571
      @ilmar5571 5 ปีที่แล้ว

      Cпасибо что ответили, но img
      .img-thumb-item не подходит, у меня импорт файлов не понимает пробелы, приходится в еxcele все редактировать вручную,
      хотелось бы сделать чтоб картинки были слитно и через запятую в Node.js ,пример:
      local.com/.../yu.jpg_640x640.jpg,
      local.com/.../yu.jpg_640x640.jpg,
      local.com/.../yu.jpg_640x640.jpg,