Более или менее удалось разобраться в структуре страницы, та часть страницы, которая меня интересует выглядит вот так:
<tbody class="listing-item stat-publicapi stat-publicapi_type_listing i-bem stat-publicapi_js_inited listing-item_js_inited"
<tr class="listing__row" //нужные данные здесь
<tr class="listing__row"
<tr class="listing__row"
А первый тег tr состоит из
<td class="listing__cell listing__cell_type_thumb"
<td class="listing__cell listing__cell_type_summary" //Нужные данные здесь - Название и описание
<td class="listing__cell listing__cell_align_right listing__cell_type_price" // Здесь цена
<td class="listing__cell listing__cell_type_year" //здесь год выпуска
<td class="listing__cell listing__cell_type_km"// здесь пробег
Методом тыка удалось вытащить все данные оттуда с помощью:
var jsonArr = []; // array of Json structures
var lenghtStrings = document.getElementsByTagName('tbody');
for(i = 0, l = lenghtStrings.length; i < l; i++) {
var currentString = lenghtStrings[i];
console.log(currentString.innerText);
obj.replace(/^\t, '');
jsonArr.push(currentString.innerText);
}
document.write("<br>"+JSON.stringify(jsonArr));
Данные имеют такой вид:
["\t\nBMW S 1000 R\nNaked bike\n999 см3 (165 л.с.), рядное, 4 цилиндра, 4 такта, 6 передач, цепь, красный\n\t950 000 ₽\t\n2017\n\t\n3 500 км\n\t\n\n\nЛомоносовский проспект, Минская, Москва\n\n\n\n",...
И теперь к сути, есть 2 проблемы: 1) хотелось бы избавиться от всех табуляций , replace почему-то не помог
2) Вместе с нужной информацией парсится еще и реклама(спецпредложения), но я заметил, что у нее другой класс (но тег тоже tbody)
<tbody class="listing-special-sales"
Как все это исправить?
Upd: Что получается сейчас:
"\t\nHarley-Davidson Road King\nКруизер\n1 500 см3 (65 л.с.), v-образное, 2 цилиндра, 4 такта, 5 передач, ремень, красный\n\t\n600 000 ₽\n\t\n2001\n\t\n21 300 км\n\t\n\n\nМосква\n, \n1 час назад\n\n\n\n","Спецпредложения\nНазадВперед\nHonda CRF 1000L Africa Twin\n2018, 3 600 км\n999 000 ₽\nBMW F 700 GS\n2015, 836 256 км\n986 896 900 ₽\nKTM 350 SX F\n2014, 137 км\n250 000 ₽\nHarley-Davidson V-Rod\n2007, 25 430 км\n580 000 ₽\nHonda CB 1000\n2018\n1 099 000 ₽\nHarley-Davidson FXDR 114\n2019, 17 км\n1 750 000 ₽\nKawasaki Ninja 650\n2017, 9 800 км\n480 000 ₽\nHarley-Davidson Fat Boy\n2019, 20 км\n1 700 000 ₽\n\n","\t\nYamaha XVS 950\nЧоппер\n950 см3, v-образное, 5 передач, ремень, черный\n\t\n410 000 ₽\n\t\n2013\n\t\n14 000 км\n\t\n\n\nМосква\n, \n1 час назад\n\n\n\n",
Что хотелось бы получить:
[" Harley-Davidson Road King, Круизер, 1 500 см3 (65 л.с.), v-образное, 2 цилиндра, 4 такта, 5 передач, ремень, красный, 600 000 ₽, 2001, 21 300 км, Москва",
"Yamaha XVS 950, Чоппер, 950 см3, v-образное, 5 передач, ремень, черный, 410 000 ₽, 2013, 14 000 км, Москва"]
(Просто список всех данных, без рекламы и разделителей)
Upd2: Пробовал находить нужный класс:
var str = document.getElementsByClassName('listing-item stat-publicapi stat-publicapi_type_listing i-bem stat-publicapi_js_inited listing-item_js_inited');
Но получаю - undefined
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Где в google sheets писать скрипт, который мог работать с ячейками, изменять данные и тп
Начал изучать React параллельно с JSВ своем коде использую препроцессор JSX