Кликнуть по ссылкам во вложенном меню. Нужна идея. )

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
В качестве примера возьмем https://big-book-edu.ru/
Тут ссылки городов находятся в скрытых DIV. Не меню конечно, но около того.
Пока не нажмешь "ВСЕ ГОРОДА", то ссылки не увидишь. Но как вы догадываетесь шаблон об этом не знает.
Шаблон сейчас тупо парсит все ссылки без разбора (либо все на странице, либо в видимой области). Переход в лоб, без имитации мыши не устраивает.
Хочется по человечески - сначала сделать ссылки видимыми, развернув DIV, а затем кликнуть.
Нужна идея, хочу универсальный вариант реализовать.

1.) Подскажите как это реализовать на примере этого сайта? Исходник - спаршенная ссылка, любой город, например АБАКАН. Ее координаты 0, значит вероятно она свернута. Как определить координаты элемента, по которому надо кликнуть, чтобы DIV с моей ссылкой развернулся и она стала доступна для наведения и клика?
2.) Какую инфу почитать?

СПАСИБО.
 
Последнее редактирование:

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
готов купить более-менее универсальное решение. пишите цену.
Желательно используя xPath и регулярки, что бы не быть привязанным к одному сайту..
 
Последнее редактирование:

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
На примере сайта не могу, сделал на примере youtube.
 

Вложения

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
Любой интернет магазин возьмем. Например https://tsum.ru
Когда я паршу ссылки, то по многим из них, особенно из меню, я кликнуть не смогу, так как они не видны.
Задача определить объект, на который надо навести или кликнуть, чтобы появилась возможность кликнуть по ссылкам из меню. Желательно используя xPath и Regexp. Т.е. выцепить материнский объект, чаще всего это тоже <a>, находящаяся выше в иерархии ДОМ модели, по отношению к изначально спаршенной мной "невидимой" ссылке.
Если есть у кого универсальный вариант то готов купить.
 
Последнее редактирование:

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18
C#:
HtmlElement he = instance.ActiveTab.FindElementByAttribute("ТЕГ", "АТРИБУТ", "ЗНАЧЕНИЕ", "ТИП ПОИСКА", НОМЕР СОВПАДЕНИЯ);
if (he.IsVoid)
    throw new Exception("Не найдено поле ввода");
{
    instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);
    instance.ActiveTab.FullEmulationMouseClick("left", "click");
 

Вложения

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
C#:
HtmlElement he = instance.ActiveTab.FindElementByAttribute("ТЕГ", "АТРИБУТ", "ЗНАЧЕНИЕ", "ТИП ПОИСКА", НОМЕР СОВПАДЕНИЯ);
if (he.IsVoid)
    throw new Exception("Не найдено поле ввода");
{
    instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);
    instance.ActiveTab.FullEmulationMouseClick("left", "click");
Да, я это знаю. ))
Начальные данные - ссылки по которым кликнуть нельзя, так как они во вложенном меню/подменю или как на сайте https://big-book-edu.ru/ . Больше ничего не известно. Известно что на странице есть некий элемент который сделает эти ссылки видимыми. Надо определить этот элемент, опеределить кликать на него или навести просто,, навести (кликнуть) на него, тем самым откроется нужное подменю или расхлопнется скрытый div и там уже кликнуть на ссылку. Вот такая задача. Пример - любой инет магазин со сложным меню. Универсальный вариант - если меню любой вложенности и для любых сайтов. Если у кого есть - пишите предложения.
 
Последнее редактирование:

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
C#:
HtmlElement he = instance.ActiveTab.FindElementByAttribute("ТЕГ", "АТРИБУТ", "ЗНАЧЕНИЕ", "ТИП ПОИСКА", НОМЕР СОВПАДЕНИЯ);
if (he.IsVoid)
    throw new Exception("Не найдено поле ввода");
{
    instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);
    instance.ActiveTab.FullEmulationMouseClick("left", "click");
Для ЦУМ, самый простой вариант.
вот ссылка допустим.
Чтобы на нее перейти с главной надо сначала навести на "ЧАСЫ", а для этого шаблон должен рассчитать что именно там прячется нужная нам ссылка. Шаблон не знает в каком меню прячется та или иная ссылка, этот алгоритм мне и нужен. Затем надо определить наводить мышь на "часы" или кликать, затем опередлившись навести на нее и только потом появится возможность кликнуть используя
instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);
instance.ActiveTab.FullEmulationMouseClick("left", "click");
 
Последнее редактирование:

heks

Client
Регистрация
01.10.2013
Сообщения
1 194
Благодарностей
315
Баллы
83
так что ли нужно сделать
 

xopek2007

Client
Регистрация
10.05.2013
Сообщения
102
Благодарностей
11
Баллы
18

baracuda

Client
Регистрация
19.06.2013
Сообщения
793
Благодарностей
278
Баллы
63
ну и в чём проблема...
цепляйся к //div[@id="list-town"] откидываешь всё лишние. дальше обрабатываешь как хочешь
 

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
Все еще куплю шаблон, который может кликать по сложным меню любой вложенности.пишите предложения. Универсальный подходящий под большинство сайтов с адекватной версткой.
 
Последнее редактирование:

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
ну и в чём проблема...
цепляйся к //div[@id="list-town"] откидываешь всё лишние. дальше обрабатываешь как хочешь
Пробовал отбросить и выйти на материнский list-town-button, не получается. Я только xpath изучаю и не могу понять почему regexp не работает у меня.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113
Все еще куплю шаблон, который может кликать по сложным меню любой вложенности.пишите предложения. Универсальный подходящий под большинство сайтов.
у каждого сайта своя верстка. и структура менюшки сделаны по разному. где то вложенные div, где то через таблицы, где то через списки.
 

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
у каждого сайта своя верстка. и структура менюшки сделаны по разному. где то вложенные div, где то через таблицы, где то через списки.
ну мне бы реализацию увидеть согласно концепту моему - для tsum и для big-book-edu.ru. Есть ссылка. Требуется поиск родительского <A> для нее через xPath и Regexp, далее треб определить кликнуть по нему или навести, ну и дальше допустим наводим на родительский, открываем свернутое меню, наводим на нашу дочернюю ссылку, кликаем.
 
Последнее редактирование:

nail2501

Client
Регистрация
19.04.2015
Сообщения
481
Благодарностей
38
Баллы
28
Актуально. У кого есть решение по имитации переходов по сложным вложенным меню или кто может сделать за деньги - пишите. Не универсальный вариант донат небольшой. Универсальный вариант - обсудим цену.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)