Парсинг информации с сайта при помощи 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 #урокипрограммирования #программирование
Спасибо большое, информации на русском языке почти нет, есть пару статей и теперь ещё это видео. Ещё раз спасибо не останавливался.
как мне получить список ссылок на все песни в списке на сайте zvuk com? Дело в том что там после нажатия на кнопку играть, она появляется в плеере. не пойму каконо формируется
все понял. в скриптах есть tracksid массив. и запросы zvuk com/api/tiny/track/stream?id=67483584&quality=high
сайт пользуется методом получения данных rest api. После клика он запрашивает у своего сервиса данные и потом их уже отрисовывает. Вам здесь нужно посмотреть по какому адресу он получает данные, и уже с ними работать. На канале есть методики по работе с rest api
Друг! прошло довольно много времени с публикации видео.
Но может будет полезно.
Библиотеки быстрее всего, добавлять через "bower".
Для работы "bower" - нужны (node, npm и git).
Установка "bower" npm install -g bower
Установка библиотек через "bower" bower install cheerio
Удобно? Однозначно колоссальная экономия времени. Рекомендую.
Ах да, чуть не упустил:) путь для библиотек.
Устанавливаем "bower" в корень нашего проекта, создаем файл (без названия, но с расширением ".bowerrc" (использую sublime text - редактор)
в ".bowerrc" вписываете путь, для установки библиотек.
Больше информации можно узнать на оф сайтах npm и bower
{"directory" : "app/libs/"}
@@vmbp2312 bower умер как проект. Лучше юзать Yarn или npm
мне нравиться когда ты говорить "очень знаково да?"
Дружище - лайк тебе за позитивность и юмор!!)) По-больше бы таких людей! И подписка.
Хотел сделать парсер на php начал искать на js а тут ты
Есть раскрученные каналы с убогим контентом, а у тебя канал с хорошим, побольше бы тебе подписчиков
ЛАЙК И ПОДПИСКА
Хорошо объяснил!
Если кому-то будет интересно, у меня есть похожий видос с парсером. Всем бобра!
Интересно!
Скинь ссылку тогда
чуть не обосрался с русских субтитров к видео. Спасибо
Только это называется не parsing, а scraping.
Это самый лучший парсер который я только видел))
"Да и со многими русскими словами есть проблемы" :) Самоирония - это гуд. Спасибо за урок!
С реакт проектах получать данные не получается
А вообще возможно сделать расширение для хрома, которое будет выводить информацию с другого сайта.
Возможно
покажи пожалуйста как парсить данные букмекерских контор? идея такая открыть в разных вкладках две конторы, найти одинаковые матчи и их коэфициенты. Подгружать эти динамические коэффициенты и подставлять их в формулу на предмет появления арбитражной ситуации (вилки). Подставлять в формулу вручную - долго, а жирные коэффициенты существуют около 5 секунд. То есть желательно это делать автоматически. Ну и потом еще автоматически ставить ставки в нужных пропорциях мгновенно.
Женат?
странный вопрос, особенно тут. я нет.
а чего там сложного, делаешь реквест, получаешь от них респонс, в теле респа лежит вся страница. Соответственно разбираешь её и достаешь нужную тебе инфу, все просто.
@@ВячеславИванов-д1р ну как там дела с парсингом?
Как получить обновлённые данные страницы? console.log(res.body) выводит в консоль текст как у первого запроса, даже спустя время или после перезапуска программы. Например на странице был тег #4127, а стал #1234, но программа всё равно выводит #4127.
здесь совсем другой подход нужен. Сайт получает такую информацию скорей всего rest api запросами, их нужно отследить и брать с них информацию. На канале есть видео об этом.
@@openweb-php Спасибо за ответ, рассмотрю эту тему подробнее.
Здравствуйте, подскажите пожалуйста у вас есть видео как сделать Java скрипт для захода на сайты? Помоги пожалуйста не могу найти где либо, может есть какой нибудь пример, моих знаний в этой области не хватает ни на что)
Добрый день, одним js там не обойтись. Видео такого нет.
@@openweb-php это настолько сложно?
Хорошее вищео, но однозначно нужно дополнить выводлм в базу данных, сохранпнрем в массив по ключам + фото. Так же потом сортировкой и пагинаципй в веб интпрфейсе.
еще б урок как данные в google таблицы записывать, было б идеально
Очень тихо, клавиатура и то громче. Но урок хороший, у меня даже ошибок не было. А еще прикольные переходы видео - помехи.
Огромнейшая благодарность за инфу и жирный ЛАЙК!
Спасибо огромное! Искал материал про парсинг данных, но не мог никак понять, а здесь все так просто и понятно. Удачи вам
не нужно архивом прикладивать зависимости))
просто в описание видео список приложи и все. Пример, npm i needle, npm i cheerio .. и тк.
Нео, ты попал в матрицу.
Круто контент!!!! Жаль раньше не увидел - столько говнокода понаписал(( однозначно подпичка
Молодец парень.Успехов тебе.))))))))))))))
Подскажите пожалуйста, как написать куки авторизацию на сайте для подобного парсера. Или что почитать погуглить, в ответ постоянно прилетают инструкции для написания авторизации на сервере с нодой, а я хочу всего лишь для маленького парсера. Спасибо за видео.
доки на библиотеку needle глянь, там можно как и куки отправлять так и загаловки по не обходимости
Спасибо за урок!
Скажи, а что делать, если контент рендерится JS? И в самом первом запросе в Dev tools нужный контент еще не отрендерился.
Сейчас очень много контента именно рендерится разными фреймворками типа Vue, Angular, React.
В большинстве случаи такой контент можно получить из тех же api серверов от куда подучает сам сайт. Это более правильный подход и мнения затратный. Но есть есть доступы не обхожимость получит уже соендерный контент, то поможет electron, про него есть тоже видео на канале
некоторые сайты могут идентифицировать уникального пользователя по параметрам canvas hash без куки, ip, заголовков. Как поменять этот canvas hash и отправить этот параметр измененным?
технологи canvas fingerprint это сбор отпечатка клиента, расширение монитора, версия и тип браузера, предустановленные плагины и тд. Я честно еще не разу не пытался надуривать такую систему но в теории можно набрать необходимых параметров и отправлять в загаловке
Спасибо
Спасибо тебе чел ты открыл для меня целый мир
Как создать многопоточный парсер с сохранением в базу и выводом на свой сайт?
Часть ответа уже есть в видео, для параллельных запросов поможет библиотека async, а дя базы есть куча хороших интервейсов или можно использовать библиотеку mysql
а есть возможность использовать xpath в этой библиотеке?
Да можно, не что этому не мешает
Спасибо за урок. Лайк+подписка.
Подскажите как, парсить если есть пагинация?
В чем там проблема? пагинации такие же страници, если она есть то парсим куда видут кнопки пагинации, а затем уже страници
почему ты такую убогую ide юзаешь? есть же бесплатный visual studio code
больше наверно привычка, еще есть phpstorm который пиарится на каждом шагу сейчас
Спасибо за информацию, ваше видео очень помогло.
Спасибо за урок)
Привет, большое тебе спасибо!
Однозначно подписка
Прям в точку. То что искал
Молодец, позитивно!!!
Спасибо за знания.
Друзья у кого есть работающий парсер с сайта на OpenCart?
www.ali.nsk-seo24.ru/
а что если нету www.? Будет парсить?
Roman Vasiljev или протоколы они должны быть сайтах
здравствуйте,а как парсить страницу которая доступна только после авторизации?
Здравствуйте. После авторизации вам выдается токен, при парсинге вам нужно будет передавать этот токен. Возможно другие методы, смотря как авторизация реализована, но в любом случаи вам нужно передавать некоторые параметры серверу.
Сайт которую я хочу парсить не предоставляет никакой токен,чтобы войти необходимо ввести логин и пароль.Подскажите пожалуйста,Как передать серверу логин и пароль в этом случае,вот ссылка на ту страницу: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);
});
после того как вы введете логин и пароль, вам выдадут токен, его как правило записывают в куки, отследите какие куки были до и после.
es6 не завезли?
на момент записи видео, стояла древнаяя нода
async??? Да проще promise.all использовать.
помоги пожалуйста как сделать чтоб картинки были слитно и через запятую .img-thumb-item img,img-thumb-item img,
не совсем понял какая у вас задача, может так? img
.img-thumb-item
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,