изменение ссылок и последующий апдейт html

154
12 декабря 2019, 08:30

Необходимо найти все ссылки на странице и изменить их при парсинге. Я грабблю yandex.ru и хочу все ссылки заменить на google.com и далее вывести уже готовую страницу

Подключаю express, cheerio (для работы с DOM), request (для получения страницы).

request(url, function (error, response, body) {
    if (!error) {
        var $ = cheerio.load(body); //получаем страницу
        $('body').find('a').each(function() { // находим и меняем все ссылки
          $(this).attr('href').replace(/(yandex.ru)/g, "google.com")
        });
        app.get('/', function (req, res) { // выводим страницу
            res.send(body);
          });
    } else {
        console.log("Произошла ошибка: " + error);
    }
});

Body у меня получается без апдейта, т.е. все ссылки по прежнему yandex.ru. функция с изменением ссылок работает.если выводить res.send($.html()) body всё равно без изменений. Как заставить cheerio после моих манипуляций апдейтнуть body?

Answer 1

Ответ (если кому интересно):

$('body').find('a').each(function() {
       var result = $(this).attr('href').replace(/(yandex.ru)/g, "google.com")
       $(this).attr("href", result)
    })

Спасибо что навели на мысль

READ ALSO
Пользовательские функции

Пользовательские функции

Сделал скрипт пользовательской функции для Google Tab, которая забирает значение активной ячейки и помещает в соседнюю с той, где введена пользовательская...

129
Как выполнить функцию в данном случаи?

Как выполнить функцию в данном случаи?

Как делать что бы функция отправляла результат единожды? Надо отправлять в сокет статус пользователяЕсли пользователь перемещает курсор...

151