Отступ полученных данных при scraping'e

98
25 марта 2021, 07:50

Проблема в следующем есть блок с текстом в ктором вложен еще 1 болк с текстом, при получении данных текст сливается в одну сплошную. Возможно ли пропустить вывод вложенного div блока с классовым именем text_block ? Или же можно как-то разделить данные ?

<div class="text_block_in">
 <div class="text_block">Тут какой либо текст</div>Прочитать текст.</div>

При скрапе таким способом:

  request("https://site.ru/news/", (err, res, html) => {
        const htmlAll = cheerio.load(html);
        htmlAll('.info_block_line').each((i, el) => {
            const output = htmlAll(el)
                .find('.text_block_in')
                .text()
                .replace(/\s\s+/g,'');
            console.log(output);    
        }); 
    });

На выходе получаю такой текст:

Тут какой либо текстПрочитать текст.

Answer 1

.text() выдает весь текст элемента, включая текст вложенных блоков.

Текст только самого элемента должен помочь выдать такой код

const output = htmlAll(el)
  .find('.text_block_in')
  .contents()
  .filter(function(){ 
    return this.nodeType === Node.TEXT_NODE; 
  })[0].nodeValue

На случай если на сервере это не сработает(т.к. клиентский код), есть более медленный вариант через jquery-like

htmlAll(el)
    .find('.text_block_in')
    .clone()    //clone the element
    .children() //select all the children
    .remove()   //remove all the children
    .end()      //again go back to selected element
    .text();
READ ALSO
Фильтр для select

Фильтр для select

Получаю данные с сервера с помощью функции windowload:

86
js не анимируются элементы

js не анимируются элементы

В моём скрипте функция анимирует появление блока на странице путём увеличения его высотыАнимация реализована заменой класса элемента

109
Как корректно создать из переменных дата и время дату со временем? (проблема с часовыми поясами)

Как корректно создать из переменных дата и время дату со временем? (проблема с часовыми поясами)

Есть несколько компонентовОдин отвечает за дату, другие за время

109
slick + анимация wow js

slick + анимация wow js

Есть горизонтальный сайт который работает через slick и работает по блочноНужно чтобы, при скролле на следующий слайд запускалась анимация...

103