Скроллинг Яндекс Карт

sanitarn

Client
Регистрация
15.12.2014
Сообщения
47
Благодарностей
2
Баллы
8
Всем привет!
Возник вопрос, как проскролить данные левого меню на Яндекс Картах?
Задача стоит спарсить все данные организаций по запросу, сделал шаблон, но дошел до момента скролинга и способ с эмуляцией клавиатуры {END} не работает.
Шаблон прикрепил, спасибо!
 

Вложения

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113
Вместо унылого кликания добавьте кубик C#-кода c XPath:
C#:
//Переходим на активную вкладку:
Tab tab1 = instance.GetTabByAddress("page");
if (tab1.IsBusy)    tab1.WaitDownloading();

//используя XPath находим последний елемент в поиске яндекс карт
HtmlElement he = instance.ActiveTab.MainDocument.FindElementByXPath("//ul[last()]/li[@class='search-snippet-view'][last()]/div", 0);

// делаем быстрый скролинг ( https://help.zennolab.com/en/v5/zennoposter/5.7/webframe.html#ZennoLab.CommandCenter~ZennoLab.CommandCenter.HtmlElement~ScrollIntoView.html )
if (!he.IsVoid)
{
    // scroll view of tab to the html element
    he.ScrollIntoView();
}
else
{
    project.SendInfoToLog("не нашли елемент, не скролим", true);
    return "не нашли елемент, не скролим";
}
После него надо сделать паузу пару секунд, чтобы все точно прогрузилось, проверку типа «Если уже есть кнопка "Добавить организацию", то успешный конец», и листать пока не появится эта кнопка.
Делал такой шаблон на браузере под заказ, но он не подходит для нормального парсинга, так как Яндекс лимитирует для популярных запросов максимальное количество елементов при таком скролинге. Раньше был лимит 500, теперь вроде вообще до 100..200 урезали.
Смотрите в сторону перехвата запросов к API\Json и эмуляции этого алгоритма. Это намного труднее, но даст лучший результат, поскольку там лимиты не таке жесткие.

Ну или на правах рекламы укажу тему продаж своего шаблона, где как раз все описание реализовано:
Продажи парсера организаций Яндекс Карты (Справочника), 40 000 организаций минуту, без платного API
Или на крайняк мою базу на складчике найдете, правда там продажи пойдут через недельку-две "База организаций России из Яндекс Карты (Яндекс Справочник)", тем же шаблоном делалась + дополнительным парсером Е-mail.
Как видите, на зенке можно все что угодно реализовать, только старания и мозги нужны.
 
  • Спасибо
Реакции: sanitarn

sanitarn

Client
Регистрация
15.12.2014
Сообщения
47
Благодарностей
2
Баллы
8
Вместо унылого кликания добавьте кубик C#-кода c XPath:
C#:
//Переходим на активную вкладку:
Tab tab1 = instance.GetTabByAddress("page");
if (tab1.IsBusy)    tab1.WaitDownloading();

//используя XPath находим последний елемент в поиске яндекс карт
HtmlElement he = instance.ActiveTab.MainDocument.FindElementByXPath("//ul[last()]/li[@class='search-snippet-view'][last()]/div", 0);

// делаем быстрый скролинг ( https://help.zennolab.com/en/v5/zennoposter/5.7/webframe.html#ZennoLab.CommandCenter~ZennoLab.CommandCenter.HtmlElement~ScrollIntoView.html )
if (!he.IsVoid)
{
    // scroll view of tab to the html element
    he.ScrollIntoView();
}
else
{
    project.SendInfoToLog("не нашли елемент, не скролим", true);
    return "не нашли елемент, не скролим";
}
После него надо сделать паузу пару секунд, чтобы все точно прогрузилось, проверку типа «Если уже есть кнопка "Добавить организацию", то успешный конец», и листать пока не появится эта кнопка.
Делал такой шаблон на браузере под заказ, но он не подходит для нормального парсинга, так как Яндекс лимитирует для популярных запросов максимальное количество елементов при таком скролинге. Раньше был лимит 500, теперь вроде вообще до 100..200 урезали.
Смотрите в сторону перехвата запросов к API\Json и эмуляции этого алгоритма. Это намного труднее, но даст лучший результат, поскольку там лимиты не таке жесткие.

Ну или на правах рекламы укажу тему продаж своего шаблона, где как раз все описание реализовано:
Продажи парсера организаций Яндекс Карты (Справочника), 40 000 организаций минуту, без платного API
Или на крайняк мою базу на складчике найдете, правда там продажи пойдут через недельку-две "База организаций России из Яндекс Карты (Яндекс Справочник)", тем же шаблоном делалась + дополнительным парсером Е-mail.
Как видите, на зенке можно все что угодно реализовать, только старания и мозги нужны.
Обязательно попробую ваш вариант, спасибо!
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Всем привет!
Возник вопрос, как проскролить данные левого меню на Яндекс Картах?
Задача стоит спарсить все данные организаций по запросу, сделал шаблон, но дошел до момента скролинга и способ с эмуляцией клавиатуры {END} не работает.
Шаблон прикрепил, спасибо!
Думай голова.
 

Вложения

  • Спасибо
Реакции: sanitarn

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
а я уж подумал что тут про скролинг самой карты - типа приблизить или отдалить - интересно было на такое решение посмотреть (если стандартный скролинг на координаты из кода не подходит - не знаю) - и подумать - где это может пригодится
 

sanitarn

Client
Регистрация
15.12.2014
Сообщения
47
Благодарностей
2
Баллы
8
а я уж подумал что тут про скролинг самой карты - типа приблизить или отдалить - интересно было на такое решение посмотреть (если стандартный скролинг на координаты из кода не подходит - не знаю) - и подумать - где это может пригодится
Так просто эмуляция клавиатуры {END} приближает
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 177
Благодарностей
2 184
Баллы
113

Nord

Client
Регистрация
22.03.2012
Сообщения
2 406
Благодарностей
1 473
Баллы
113
скролинг самой карты - типа приблизить или отдалить
А там можно просто к УРЛу прибавить параметр, отвечающий за зум. Согласен, немного не то, но работает 100% =)
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
да это везде можно сделать когда отснифав, вообще не понимаю для чего скролить если дкраку ясно что page2 следующая страница
 

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