@dmitry_pacification
Трудности рождают прорыв

Как правильно сделать парсер для сайта на JS/jQuery?

Дано:
Список категорий и подкатегорий, которые я достал из главного меню с помощью JS. Список помещен в массив targetURL.

Необходимо:
Написать парсер, который будет брать url из массива по индексу, переходить на страницу, парсить все ссылки на товары на этой странице, сохранять данные в другой массив или объект.

Парсинг осуществляю через консоль.

var targetURL = [
'http:// example.ua /g17995855-diagnosticheskoe-meditsinskoe-oborudovanie',
'http:// example.ua /g399157-laboratornoe-oborudovanie'
];
$.ajax({
url:targetURL[0],
success: function(){
console.log('Success!!!');
window.location.href = targetURL[0];
$(function(){
console.log( "ready!" );
var items = $('.b-product-groups-gallery__item .b-product-groups-gallery__title-wrapper a');
});
},
error: function() {
console.log('Error');
}
});
  • Вопрос задан
  • 2999 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ShinShil
Да, парсинг делают через бекенд. Я делал на php. Сначала получал страницу через CURL. Потом парсил с помощью simplehtldom - небольшая библиотека, очень удобная и простая.

Немного о CURL. Это просто для того чтобы сделать запрос. Ты ведь с компьютера открваешь страницы. Это происходит так: твой компьютер с помощью браузера делает запрос к серверу, тот высылает тебе html код, а браузер просто отображает его.

$ch = curl_init();  
curl_setopt($ch, CURLOPT_URL, 'http://forum.antichat.ru/'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($ch); 
curl_close($ch);


Выше пример простейшего CURL, в если он подключён, то в $result должна находиться длиннющая строка с html кодом страницы. У него есть много настроек, можно устанавливать различные заголовки, типы запросов и т.п.

При парсинге выбираешь все ссылки и потом проверяешь аттрибут href.
Ответ написан
Комментировать
@WhatYouDoing
php dom parser в помощь,норм библиотечка. simplehtmldom.sourceforge.net
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы