Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удаление ленты на Дзене (https://javascript.ru/forum/misc/84622-udalenie-lenty-na-dzene.html)

winrar2018 31.10.2022 18:05

Удаление ленты на Дзене
 
Возможно ли удалить с помощью скриптов бесконечную раздражающую ленту на dzen.ru? Пытался убрать разными адблоками, не помогает...

рони 31.10.2022 18:47

winrar2018,

document.querySelector("div.feed._is-dzen._column-count_2").remove()

Aetae 31.10.2022 18:59

Если всё так просто, то и болкировщиком по фильтру
##div.feed._is-dzen._column-count_2
должно легко прятаться...

winrar2018 31.10.2022 19:35

Имелось ввиду, скрыть нужно только материалы от разных блогеров, а ленту новостей "Сейчас в СМИ", которая на самом верху - оставить.

Когда я блокирую каждый материал блогеров по отдельности с помощью AdGuard, то получаются такие правила:
dzen.ru###zen-row-1
dzen.ru###zen-row-2
dzen.ru###zen-row-3
dzen.ru###zen-row-4
и так до бесконечности. Но в итоге ничего не блокируется.

Целиком захватить только блогерскую ленту не получается, т.к. блок новостей, который нужно оставить, находится в "zen-row-0"...

рони 31.10.2022 19:54

winrar2018,
document.querySelector("div.feed._is-dzen._column-count_2").replaceWith(document.querySelector("#zen-row-0"));

winrar2018 31.10.2022 20:00

рони,
огромное спасибо!

Aetae 31.10.2022 20:04

##div[class^="dzen-desktop__feed"] > .more-mark-wrapper // отключит подгрузку даже в скрытом виде
##div[class^="dzen-desktop__feed"] > .feed._is-dzen > #zen-row-0 ~ * // собсно скроет что уже есть

Но вариант рони лучше, если можете позволить себе скрипт, т.к. с моим вариантом дизайн ломается.)

winrar2018 31.10.2022 20:20

Aetae,
спасибо. проверил, тоже хорошо работает, ничего не ломается.

winrar2018 13.11.2022 13:54

Можно еще как-то убрать баннеры "Установите Яндекс. Браузер"? Там 4 разных баннера появляются в разных местах. Ссылки на них такие:

на самом верху над строкой поиска яндекса:

dzen.ru##.l1fd5e70b.b32a6ac2b
dzen.ru##.c1ea86e40.dd8cda46c.fda94a6c1.s34e1aef2

под строкой поиска:

dzen.ru##.y_k3rakK4eeC58jYoeNo3jot2Icx2bQ-32

в правом нижнем углу страницы:

dzen.ru##.w31c4cc85.wf6d87346

в левом верхнем углу страницы:

dzen.ru##.jb31668b3.icda9900.c3060a80.hbbba3a2e

Но они постоянно меняются и адблок работает только временно...

Aetae 13.11.2022 17:53

winrar2018, очевидно, что классы генерированые. Надо по соседним элементам\неизменяемым атрибутам блочить.

Навскидку что-то типа того:
dzen.ru##.content > [class*="__container"] > div:not([class*="__"])

Но не гарантирую, что оно чего лишнего не отрежет.)

Рекомендую изучить css-селекторы. Там не так сложно, но всегда потом пригодится.

рони 13.11.2022 18:16

winrar2018,
пробуйте
function containsAll(sel, str) {
            [...document.querySelectorAll(sel)].filter(({
                textContent
            }) => textContent.includes(str)).map(el => el.closest('div[id]')).forEach(div => div.remove())

        }
        containsAll('a', 'Установит');
        containsAll('a', 'Браузер');

winrar2018 13.11.2022 19:23

Aetae, рони
большое спасибо! все работает.

Унбибий 01.02.2023 03:51

// ==UserScript==
// @name         Дзен
// @namespace    [url]http://tampermonkey.net/[/url]
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        [url]https://dzen.ru/[/url]
// @icon         [url]https://www.google.com/s2/favicons?sz=64&domain=dzen.ru[/url]
// @grant        none
// ==/UserScript==

/// Удаляет ленту Дзен.
(function() {
    'use strict';
    document.querySelector("div.feed._is-dzen._column-count_2").replaceWith(document.querySelector("#zen-row-0"));
    document.querySelector("div.feed._is-dzen._column-count_2").remove();
})();

/// Удаляет предложения установить Яндекс Браузер
function containsAll(sel, str) {
            [...document.querySelectorAll(sel)].filter(({
                textContent
            }) => textContent.includes(str)).map(el => el.closest('div[id]')).forEach(div => div.remove())

        }
        containsAll('a', 'Установит');
        containsAll('a', 'Браузер');


Ребзя, трям!

Живота прошу за поднятие некротопика, но челом бью: помогите, с позавчерашнего дня перестало работать. :(

рони 01.02.2023 05:43

Унбибий,
(function() {
            function containsAll(sel, str) {
                [...document.querySelectorAll(sel)].filter(({
                    textContent
                }) => textContent.includes(str)).map(el => el.closest('div[id]')).forEach(div => div.remove())

            }
            containsAll('a', 'Установит');
            containsAll('a', 'Браузер');
            containsAll('[rel="noopener"]', 'Да');
            document.querySelector("div.feed._column-count_2").replaceWith(document.querySelector("#zen-row-0"));

        })()

Унбибий 01.02.2023 19:06

Цитата:

Сообщение от рони (Сообщение 550349)
Унбибий,
(function() {
            function containsAll(sel, str) {
                [...document.querySelectorAll(sel)].filter(({
                    textContent
                }) => textContent.includes(str)).map(el => el.closest('div[id]')).forEach(div => div.remove())

            }
            containsAll('a', 'Установит');
            containsAll('a', 'Браузер');
            containsAll('[rel="noopener"]', 'Да');
            document.querySelector("div.feed._column-count_2").replaceWith(document.querySelector("#zen-row-0"));

        })()


Ну ведь спасибище же!

\

winrar2018 18.03.2023 10:36

Перестало работать удаление ленты. На дзене в коде вместо:
feed._column-count_2
вроде появилось:
feed._column-count_2._is-desktop-redesign._grid-type_fixed._is-redesign._is-redesign-desktop-cards-has-hover-shadows
Но когда я поменял, то все равно не работает..

рони 18.03.2023 11:38

winrar2018,
вариант из #14 у меня работает.

winrar2018 18.03.2023 12:11

Цитата:

Сообщение от рони (Сообщение 551215)
winrar2018,
вариант из #14 у меня работает.


Странно. У меня лента только на секунду удаляется и сразу же опять появляется..

winrar2018 30.03.2023 10:18

Цитата:

Сообщение от рони (Сообщение 551215)
winrar2018,
вариант из #14 у меня работает.


Не понимаю почему у меня не работает. В чем может быть причина? Можете полностью выложить код?

рони 30.03.2023 12:35

Цитата:

Сообщение от winrar2018
Можете полностью выложить код?

???

Унбибий 04.04.2023 14:00

Цитата:

Сообщение от рони (Сообщение 551327)
???


Осмелюсь предположить, что winrar2018 челом о сруб светлицы бьёт, и нижайше живота новые инструкции скрипта просит, потому что старые, из #14, действительно, актуальность потеряли. :cray:

рони 04.04.2023 16:22

Унбибий,
пробуйте ...
(function() {
            function containsAll(sel, str) {
                [...document.querySelectorAll(sel)].filter(({
                    textContent
                }) => textContent.includes(str)).map(el => el.closest('div[id]')).forEach(div => div.remove())
            }
            containsAll('a', 'Установит');
            containsAll('a', 'Браузер');
            containsAll('[rel="noopener"]', 'Да');
            function rem() {
                let con = document.querySelector("div.dzen-with-punch-desktop__topContent-OK") || document.querySelector("div#zen-row-0");
                if (con) {
                    let par = con.parentNode;
                    par.replaceWith(con);
                }
            }
            rem();
            window.setTimeout(rem, 500)
        })()

Унбибий 05.04.2023 12:08

Цитата:

Сообщение от рони (Сообщение 551391)
Унбибий,
пробуйте ...


М-ммм… Вкусно! В смысле, классно — всё арбайтен! :yes:
Спасибо от себя, и того парня. :thanks:

Унбибий 15.04.2024 16:53

Дзен достаточно часто меняет паттерны слоёв на главной странице, но до последнего времени удавалось (совместно с AI) справляться самостоятельно. Последние две с половиной недели — не получается.

Прошу помощи!

рони 15.04.2024 20:48

Унбибий,
вариант ...
(function() {
            function containsAll(sel, str) {
                [...document.querySelectorAll(sel)].filter(({
                    textContent
                }) => textContent.toLowerCase().includes(str.toLowerCase())).map(el => el.closest('div[id]')).forEach(div => div.remove())
            }
            containsAll('a', 'Установит');
            containsAll('a', 'Браузер');
            containsAll('[rel="noopener"]', 'Да');

            function rem() {
                let con = document.querySelector(".card-news__tabPane-3_") || document.querySelector("div#zen-row-0");
                if (con) {
                    let par = con.parentNode;
                    par.replaceWith(con);
                }

                let lenta = document.querySelector('[aria-label="Лентa Дзена"]');
                if (lenta) lenta.remove();
            }
            rem();
            window.setTimeout(rem, 500)
        })()

Унбибий 17.04.2024 00:36

рони, большое спасибо, и виртуальный плюс от меня вам в карму!

Небольшой фидбек: то, что обведено красным, сейчас скрывает, а зелёным — оставляет (FF 115.10.0esr, Tampermonkey 5.1.0, Desctop). Было бы очень клёво, если бы можно было сделать наоборот. Я не уверен, что осилю это самостоятельно. По крайней мере, с наскоку пока не получилось. :(



Часовой пояс GMT +3, время: 14:08.