Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: wireshark on July 23, 2021, 06:03:05 PM

Title: Помогите, как найти гиперссылки на странице?
Post by: wireshark on July 23, 2021, 06:03:05 PM
Задача достаточно простая, кликер открывает страницу в браузере, на странице надо найти гиперссылку и кликнуть по ней. Страницы достаточно рамдомные, те нельзя привязаться к области.
Ссылок на страницах не много, достаточно если будет находить любую.

Единственное, что приходит в голову - двигать курсор и контролировать его вид. Но это крайне затратно по ресурсам (можно делать контроль не частым, но тогда есть вероятность пропустить), вторая более существенная проблема движение курсора становится рваным.
Как альтернатива (не проверял) - запустить выполнятся вторую задачу для контроля формы курсора, но нужно будет передать в основной скрипт, что надо остановить мышь и запустить подпрограмму, хз как все это реализовать.

Может я, что то упускаю и можно как то найти гиперссылки на странице другим путем?
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: Космич on July 23, 2021, 08:05:33 PM
по цвету?)
Title: Re:кто ищет, тот всегда найдёт!
Post by: kiril on July 23, 2021, 11:42:13 PM
не полное описание задачи, но пусть оно останется на совести автора темы.
Клик, при изменении кода курсора решает задачу.
В настройках панели задач\мышь\указатели, можно задать на  " выбор ссылки" особый вид курсора, который больше ни где не используется, а можно просто кликать по тому, что сейчас по умолчанию, лишние клики на странице - это дополнительная активность и всегда в таких случаях только приветствуется.
 Но обычно нужно сначала запомнить координаты найденной ссылки и оставаться на странице заданное время, имитируя активность и интерес и только по его истечению переходить по ссылке на следующую. ;)
Title: Re:кто ищет, тот всегда найдёт!
Post by: wireshark on August 25, 2021, 02:57:16 PM
не полное описание задачи, но пусть оно останется на совести автора темы.
Клик, при изменении кода курсора решает задачу.
В настройках панели задач\мышь\указатели, можно задать на  " выбор ссылки" особый вид курсора, который больше ни где не используется, а можно просто кликать по тому, что сейчас по умолчанию, лишние клики на странице - это дополнительная активность и всегда в таких случаях только приветствуется.
 Но обычно нужно сначала запомнить координаты найденной ссылки и оставаться на странице заданное время, имитируя активность и интерес и только по его истечению переходить по ссылке на следующую. ;)
Спасибо, буду экспериментировать, думал есть какой то способ вытащить данные из кода страницы или еще какая магия. Постоянная проверка курсора достаточно ресурсоемка если делать на каждом шаге, да и на движении курсора отражается, он останавливается на момент проверки.

Отвечая на предыдущий вопрос, к сожалению ссылки цветом или как то иначе не выделены не на всех страницах, на некоторых есть выделение цветом, на других появляется подчеркивание, на третьих текст набран шрифтом того же цвета, что ссылки на других.

Ссылки могут быть в любом месте страницы, те я делаю хаотические движения и надеюсь, что под курсор попадет ссылка, при этом приходится условно каждые 5х5 пикселей смещения проверять его вид иначе можно пропустить
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: Vint on August 25, 2021, 04:56:56 PM
Обычно ссылок на странице очень много. Элементы интерфейса часто тоже ссылки.
Если нужны все, их можно достать или подкрасить. Если нужны только ссылки из контекста, то как их отделить от остальных для всех сайтов без конкретики.

Можно с помощью JavaScript и плагина к браузеру подсветить все ссылки которые можно подсветить, потому что ссылки бывают не только текстовыми, но и кнопки и картинки и области картинки.
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: wireshark on August 31, 2021, 06:58:12 PM
Спасибо за идею, я что то про плагины не подумал.
Вообще нужны любые ссылки включая элементы интерфейса. Нужно создать видимость, что за компьютером живой человек который серфит.
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: Vint on September 01, 2021, 05:11:42 PM
На js можно подсветить текстовые ссылки. Что с картинками делать я без понятия. Но есть же расширения собирающие все ссылки на странице, только это наверно не подходит.
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: wireshark on September 02, 2021, 10:23:14 AM
Все ссылки собирать нельзя, там скорее всего есть honeypot которые нормальным людям не видны. Поэтому нужны только видимые. Но за идею с плагином еще раз спасибо, попробую
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: Vint on September 02, 2021, 02:04:53 PM
Можно вывести в консоль откуда сразу и кликать
Code: (javascript) [Select]
let links = document.querySelectorAll('a');
links.forEach(link => console.log(link.href));

Можно кликать на случайную ссылку самим JS
Code: (javascript) [Select]
var links = document.querySelectorAll('a');

function click_random_link() {
    // Получаем случайный ключ массива
    let rand = Math.floor(Math.random() * links.length);
    // красим ссылку на которую перейдём
    links[rand].style.backgroundColor = '#ff3c00';
    // Открываем ссылку в новом окне
    window.open(links[rand].href, '_blank')
    console.log('Переходим по ссылке:', links[rand].href)
}

// Переходим по ссылке через 1000 - 3000 ms
setTimeout(click_random_link, Math.random() * 2000 + 1000);

Если нужно подстраховаться и не учитывать скрытые, то получение объектов-ссылок можно изменить
Code: (clickermann) [Select]
// Все ссылки на странице
var links = document.querySelectorAll('a');
// Все ссылки на странице исключая скрытые
// visibility: hidden;
// display: none;
// opacity: 0;
var links = (Array.from(document.getElementsByTagName("a"))).map(i => {if (i.hostname == document.domain && getComputedStyle(i).visibility != 'hidden' && getComputedStyle(i).display != 'none' && getComputedStyle(i).opacity != '0') {return i.href}}).filter(i => i != undefined)

Если хочешь тыкать непременно кликером, можно их все подкрасить на странице, а кликером уже кликать куда нужно
Code: (javascript) [Select]
let links = document.querySelectorAll('a');
// красим ссылки
links.forEach(link => link.style.backgroundColor = '#00ff00');

(https://i.ibb.co/7SnK4RK/2021-09-02-13-27-12.png) (https://ibb.co/7SnK4RK)
Title: Re: Помогите, как найти гиперссылки на странице?
Post by: wireshark on September 02, 2021, 04:29:35 PM
спасибо!