weranda
@weranda

Как открыть на JS результаты выдачи Google?

Приветствую.

Ситуация. Надо сделать закладку в браузере таким образом, чтобы при клике на нее открывало 5 первых результатов выдачи ПС Google, но раньше с таким не сталкивался и удалось сделать вот это:
javascript:(
    document.querySelectorAll('.g > div > div > a').forEach(link => link.click())
)()

Но открывается только первая страница, а нужно сделать так, чтобы их пять или другое заданное количество открывалось.
  • Вопрос задан
  • 85 просмотров
Решения вопроса 2
MrDecoy
@MrDecoy Куратор тега JavaScript
Верставший фронтендер
Ну вот сразу бы и писали в вопросе про букмарклеты.

подробно:
javascript:(
  Array.from(document.querySelectorAll('#rso > div:last-child a[data-ved]:not([id])')) // находим подходящие ссылки. Все у которых есть атрибут data-ved и нет id и лежат в последнем диве у элемента с id = rso
    .slice(0, 5) // режем до первых 5ти
    .forEach(i => window.open(i.href, '_blank')) // Открываем. Нужно будет разрешить открытие всплывающих окон в браузере. Иначе откроет только 1.
)(); void 0;


Для закладки:
javascript:(Array.from(document.querySelectorAll('#rso > div:last-child a[data-ved]:not([id])')).slice(0, 5).forEach(i => window.open(i.href, '_blank')))(); void 0;


Так как классы там обфусцированные и скорее всего каждый билд меняются, то положиться можно только на DOM структуру, и я сделал допущение, что на id тоже можно положиться, так как они выглядят так, будто всегда будут такими. Но если структура поменяется - нужно будет вносить правки.

P.S. используются методы Array.from и стрелочные функции, которые не работают в старых браузерах. Но как их заменить - легко гуглится.
Ответ написан
zkrvndm
@zkrvndm
Архитектор решений
Код у вас правильный. Просто браузер блокирует открытие сразу нескольких вкладок) Короче откройте настройки Chrome, далее перейдите в Настройки сайтов, найдите Всплывающие окна и переадресация -> Разрешено. Профит!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Sopromat4ik
спасибо за код. модифицировал для выгрузки урлов топа. мне было очень нужно получать именно их.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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