Поиск в яндексе из excel
Всем добрый день, вечер или утро. Прошу Вашей помощи в решении следующей задачи:
необходимо реализовать средствами VBA поиск данных в интернете и затем дальнейший их импорт, например, в книгу Excel.
Создать нечто подобное через веб-запрос пробовал, но появились некоторые затруднения. Дело в том, что это необходимо для заполнения каталога фильмов. Т.е. у меня есть только название фильма и нужно в интернете (а именно на сайте кинопоиск.ру) осуществить поиск фильма по названию и импортировать обратно в книгу данные о нем (год, жанр, режиссеры и т.п).
Бо большому счету нужен только макрос, который бы помог реализовать данную задачу.
Помогите, пожалуйста, в решении данного вопроса.
Заранее Всем очень благодарен.
Это будет весьма непросто сделать.
Одно дело - запустить поиск по некой фразе, потом щелкнуть по первой ссылке в результатах, и скопировать оттуда нужные значения.
(и то весьма сложный код получится)
А что делать, если по запросу фильмы не найдены? (или найдено 1163 фильма, как по запросу "любовь")
Тут всё намного сложнее.
Сомневаюсь, что кто-то бесплатно предложит вам готовое решение.
П.С. Названия фильмов будут строго соответствовать оригиналу, так что в принципе тут будет только два варианта: либо фильм есть, либо нет (что маловероятно, т.к. фильмы в базе не самые новые)
от вас - пример исходной таблицы (со списком фильмов для поиска),
и пример того, что должно получиться после поиска по сайту.
Попробуем что-нибудь изобрести.
Я посмотрел - там разве на сайте поиск не сделан с помощью запроса в адресной строке? Тогда надо просто сделать функцию, которой передается название фильма, и она выдает HTML-код результата с сервераЯ что-то не понял.
Вот, к примеру, на листе ФИЛЬМ у вас 9 записей.
Для каждого фильма создавать отдельный лист РЕЗУЛЬТАТ?
Я-то думал, что в ту же таблицу (на листе ФИЛЬМ) надо добавить несколько столбцов (справа от названия фильма) - таких, как:
год
страна
слоган
режиссер
сценарий
продюсер
Сделал я вам всё-таки программу.
Процесс обработки отображается в строке состояния Excel.
Поисковые подсказки Яндекса — кладезь знаний для SEO-специалиста и специалиста по контекстной рекламе. Есть множество причин, почему они так востребованы:
- поисковые подсказки Яндекса — отличное дополнение к семантическому ядру, полученному через Wordstat, т.к.
- держатся в кэше гораздо дольше
- не фильтруются по частотности (в Wordstat не показываются запросы с частотностью менее 5 за последний месяц)
- не являются агрегацией по лемме (словоформы сохраняются)
- парсинг ПП, в отличие от парсинга вордстата, происходит очень быстро и в меньшей степени подвержен капче
Режимы сбора подсказок
С помощью !SEMTools для Excel можно собирать поисковые подсказки прямо на лист
Есть три режима парсинга на выбор:
- топ 10 по уже имеющемуся списку фраз
- сбор одного большого списка для одной фразы в двух режимах
- простом (1 символ)
- расширенном (2 символа)
В каждом режиме есть возможность выбрать регион из списка или задать код региона вручную.
Яндекс — топ 10 подсказок по имеющемуся списку
Выделяем список фраз для обработки, и процедура подбирает к каждой из них все подсказки Яндекса в заданном регионе без добавления каких-либо символов.
Собираем по 10 подсказок для каждой фразы, выбирая Волгоград в списке и задавая код Минска (157) вручную
Яндекс — сбор всех поисковых подсказок по одной фразе
Процедура сама переберет все символы кириллицы, латиницы и цифры после фразы и извлечет топ, отдаваемый движком поисковой системы, на лист. Нужно только ввести фразу и геокод локации, для которой будут собираться подсказки.
Парсер геозависимых подсказок Яндекса в Excel
Список геокодов для сбора подсказок
Основные геокоды для сбора подсказок в ручном режиме перечислены ниже:
Основной список ID регионов ЯндексаРегион/Город Округ ID Москва и Московская область Центр 1 Центральный федеральный округ Центр 3 Белгород Центр 4 Иваново Центр 5 Калуга Центр 6 Кострома Центр 7 Курск Центр 8 Липецк Центр 9 Орёл Центр 10 Рязань Центр 11 Смоленск Центр 12 Тамбов Центр 13 Тверь Центр 14 Тула Центр 15 Ярославль Центр 16 Брянск Центр 191 Владимир Центр 192 Воронеж Центр 193 Москва Центр 213 Долгопрудный Центр 214 Дубна Центр 215 Зеленоград Центр 216 Пущино Центр 217 Белгородская область Центр 10645 Брянская область Центр 10650 Александров Центр 10656 Владимирская область Центр 10658 Гусь-Хрустальный Центр 10661 Муром Центр 10668 Воронежская область Центр 10672 Ивановская область Центр 10687 Калужская область Центр 10693 Костромская область Центр 10699 Курская область Центр 10705 Липецкая область Центр 10712 Орловская область Центр 10772 Рязанская область Центр 10776 Смоленская область Центр 10795 Тамбовская область Центр 10802 Тверская область Центр 10819 Тульская область Центр 10832 Ярославская область Центр 10841 Санкт-Петербург Северо-Запад 2 Петрозаводск Северо-Запад 18 Сыктывкар Северо-Запад 19 Архангельск Северо-Запад 20 Вологда Северо-Запад 21 Калининград Северо-Запад 22 Мурманск Северо-Запад 23 Великий Новгород Северо-Запад 24 Псков Северо-Запад 25 Санкт-Петербург и Ленинградская область Северо-Запад 10174 Архангельская область Северо-Запад 10842 Северодвинск Северо-Запад 10849 Вологодская область Северо-Запад 10853 Калининградская область Северо-Запад 10857 Мурманская область Северо-Запад 10897 Новгородская область Северо-Запад 10904 Псковская область Северо-Запад 10926 Великие Луки Северо-Запад 10928 Республика Карелия Северо-Запад 10933 Республика Коми Северо-Запад 10939 Южный федеральный округ Кавказ 26 Махачкала Кавказ 28 Нальчик Кавказ 30 Владикавказ Кавказ 33 Ставрополь Кавказ 36 Майкоп Кавказ 1093 Черкесск Кавказ 1104 Грозный Кавказ 1106 Республика Дагестан Кавказ 11010 Республика Ингушетия Кавказ 11012 Кабардино-Балкарская республика Кавказ 11013 Карачаево-Черкесская республика Кавказ 11020 Северная Осетия Кавказ 11021 Чеченская республика Кавказ 11024 Ессентуки Кавказ 11057 Кисловодск Кавказ 11062 Минеральные Воды Кавказ 11063 Пятигорск Кавказ 11067 Ставропольский край Кавказ 11069 Краснодар Юг 35 Астрахань Юг 37 Волгоград Юг 38 Ростов-на-Дону Юг 39 Новочеркасск Юг 238 Сочи Юг 239 Новороссийск Юг 970 Таганрог Юг 971 Туапсе Юг 1058 Элиста Юг 1094 Анапа Юг 1107 Астраханская область Юг 10946 Волгоградская область Юг 10950 Армавир Юг 10987 Геленджик Юг 10990 Ейск Юг 10993 Краснодарский край Юг 10995 Республика Адыгея Юг 11004 Республика Калмыкия Юг 11015 Ростовская область Юг 11029 Волгодонск Юг 11036 Каменск-Шахтинский Юг 11043 Шахты Юг 11053 Приволжский федеральный округ Поволжье 40 Йошкар-Ола Поволжье 41 Саранск Поволжье 42 Казань Поволжье 43 Ижевск Поволжье 44 Чебоксары Поволжье 45 Киров Поволжье 46 Нижний Новгород Поволжье 47 Оренбург Поволжье 48 Пенза Поволжье 49 Пермь Поволжье 50 Самара Поволжье 51 Уфа Поволжье 172 Саратов Поволжье 194 Ульяновск Поволжье 195 Набережные Челны Поволжье 236 Тольятти Поволжье 240 Дзержинск Поволжье 972 Кировская область Поволжье 11070 Нижегородская область Поволжье 11079 Оренбургская область Поволжье 11084 Республика Татарстан Поволжье 11119 Самарская область Поволжье 11131 Саратовская область Поволжье 11146 Удмуртская республика Поволжье 11148 Ульяновская область Поволжье 11153 Уральский федеральный округ Урал 52 Курган Урал 53 Екатеринбург Урал 54 Тюмень Урал 55 Челябинск Урал 56 Ханты-Мансийск Урал 57 Салехард Урал 58 Магнитогорск Урал 235 Сургут Урал 973 Нижневартовск Урал 1091 Курганская область Урал 11158 Тюменская область Урал 11176 Ханты-Мансийский автономный округ Урал 11193 Снежинск Урал 11218 Челябинская область Урал 11225 Ямало-Ненецкий автономный округ Урал 11232 Сибирский Федеральный округ Сибирь 59 Красноярск Сибирь 62 Иркутск Сибирь 63 Кемерово Сибирь 64 Новосибирск Сибирь 65 Омск Сибирь 66 Томск Сибирь 67 Томск Сибирь 67 Чита Сибирь 68 Барнаул Сибирь 197 Улан-Удэ Сибирь 198 Новокузнецк Сибирь 237 Бийск Сибирь 975 Братск Сибирь 976 Абакан Сибирь 1095 Алтайский край Сибирь 11235 Рубцовск Сибирь 11251 Иркутская область Сибирь 11266 Кемеровская область Сибирь 11282 Междуреченск Сибирь 11287 Прокопьевск Сибирь 11291 Ачинск Сибирь 11302 Красноярский край Сибирь 11309 Норильск Сибирь 11311 Бердск Сибирь 11314 Новосибирская область Сибирь 11316 Омская область Сибирь 11318 Горно-Алтайск Сибирь 11319 Республика Бурятия Сибирь 11330 Кызыл Сибирь 11333 Республика Хакасия Сибирь 11340 Томская область Сибирь 11353 Дальневосточный федеральный округ Дальний Восток 73 Якутск Дальний Восток 74 Владивосток Дальний Восток 75 Хабаровск Дальний Восток 76 Благовещенск Дальний Восток 77 Петропавловск-Камчатский Дальний Восток 78 Магадан Дальний Восток 79 Южно-Сахалинск Дальний Восток 80 Находка Дальний Восток 974 Еврейская автономная область Дальний Восток 10243 Чукотский автономный округ Дальний Восток 10251 Амурская область Дальний Восток 11375 Биробиджан Дальний Восток 11393 Камчатский край Дальний Восток 11398 Магаданская область Дальний Восток 11403 Приморский край Дальний Восток 11409 Уссурийск Дальний Восток 11426 Республика Саха (Якутия) Дальний Восток 11443 Сахалинская область Дальний Восток 11450 Комсомольск-на-Амуре Дальний Восток 11453 Хабаровский край Дальний Восток 11457 Анадырь Дальний Восток 11458 Железногорск Дальний Восток 20086 Забайкальский край Дальний Восток 21949 Если не нашли свой регион в списке, можно скачать полный список ID регионов яндекса. Ссылка на исследование, в рамках которого были собраны эти ID, проводил маркетолог Константин Добров.
Смотрите также
Парсинг подсказок Google, Youtube, Bing, Amazon. Работают похожим образом.
Большинство рекламодателей и специалистов по настройке рекламы знают, зачем нужны Яндекс.Аудитории. Один из самых востребованных вариантов – сегменты на основе геолокации. Что может быть проще? Рисуете на карте полигоны или загружаете адреса, указываете радиусы и задаете условия взаимодействия людей с локациями. ⠀
Через несколько часов аудитории готовы: они расскажут про ваш бизнес всем, кто подходит под критерии и пользуется интернетом. Но проходит время. Люди, входившие в аудитории, оказываются недоступны. Или вы получаете доступ к аудитории, созданной кем-то другим. И вот вы уже не помните и не понимаете, вокруг каких локаций и с какими условиями настроены аудитории, даже если они понятно названы. Знакомая ситуация?
Возможности веб-интерфейса Яндекс.Аудиторий по работе с готовыми сегментами сильно ограничены. Максимум вы можете:
- найти похожих пользователей,
- поделиться сегментом с кем-нибудь,
- придумать ему другое название,
- удалить.
Первые 3 действия требуют четкого понимания того, что именно содержится внутри. Поэтому ревизия давно забытых или чужих аудиторий нередко заканчивается действием 4 и созданием нового сегмента с названием, «по которому точно никогда не забуду, кто там находится».
Вспоминаем все
Есть рабочие варианты проверки того, что же находится внутри геолокации:
- зовете программиста, который покажет свой кунг-фу Python этому Яндексу;
- гуглите и пытаетесь сами во всем разобраться;
- повторяете за мной и пользуетесь стандартными инструментами специалистов по контекстной рекламе и интернет-маркетологов (например, Excel), а заодно повышаете свою квалификацию.
Хотя мы будем работать напрямую с API Яндекса, никакие навыки программирования не понадобятся.Получить координаты точек из аудитории можно в Excel, но интереснее увидеть их на карте, поэтому предлагаю воспользоваться Power BI. Он покажет их прямо на дашборде (в Excel все аналогично, но о нем – в самом конце).
Устанавливаем Power BI
Шаг 1. Получаем токен для доступа к API Яндекса
Токен – это своего рода пароль, который помогает API Яндекса вас узнавать и отвечать на запросы вашей программы, предоставляя нужные данные. Чтобы его получить, нужно зарегистрировать новое приложение по этой инструкции или воспользоваться моей ссылкой для получения токена.
Но где же моя ссылка? Хочу предупредить: полученный по ссылке токен категорически не рекомендуется давать никому, даже мне. Его обладатель получит доступ к чтению статистики и изменению Яндекс.Метрики, Яндекс.Аудиторий и Яндекс.Директа.
Узнаю ли я ваш токен без вашего ведома? Нет. Вы получите его на странице Яндекс (убедитесь сами по адресной строке), поэтому токен увидите только вы и сам Яндекс.
Зарегистрируйте собственное предложение (на самом деле это просто) или пройдите по этой ссылке на страницу авторизации Яндекса.
Убедитесь, что вы залогинены в нужном аккаунте, и разрешите доступ к нему для приложения Power BI connector.
После нажатия на большую желтую кнопку вы увидите токен.
Пока не закрывайте эту страницу!
Шаг 2. Находим полный список аудиторий
Запустите Power BI.
- Нажмите нижнюю часть кнопки Get data («Получить данные»), чтобы открыть меню часто используемых источников данных.
- В нижней части меню выберите пункт Blank query.
Откроется редактор Power Query.
token = "", // вставьте свой токен между двойными кавычками
Headers = header // заголовки запроса
getFieldNames = (rec as any) => let
names = List.Transform(rec, Record.FieldNames),
if Value.Is(rec, type record)
Получится примерно следующее:
Теперь во вторую строку (token = “”) вставьте полученный токен между двойными кавычками и нажмите Done. Вы увидите таблицу с сегментами Яндекс.Аудиторий, к которым есть доступ у аккаунта с этим токеном.
Шаг 3. Достаем нужное и отсекаем лишнее
Среди вас наверняка найдутся те, кому не нужно объяснять, что делать дальше. Поэтому рассказываю тем, кто редко или неуверенно пользуется Power BI. Остальные могут воспринимать этот текст как совет, а не руководство к действию.
Для начала выберите в списке аудитории, созданные из геосегментов.
Убедитесь, что в колонке status остались только строки со статусом processed (готовые). Если это не так, отфильтруйте колонку status точно так же, как только что фильтровали колонку type. Картинка без комментариев:
Дальше предлагаю убрать лишние столбцы. Делать это не обязательно, но это хорошая привычка не раздувать модель данных, которая будет хранится в оперативной памяти компьютера.
- Нажмите на кнопку Manage Columns.
- Выберите пункт Choose Columns.
- В открывшемся списке оставьте только колонки name и points.
У вас останется таблица из двух колонок: name – название аудитории из интерфейса Яндекс.Аудиторий, points – список географических координат точек внутри нее.
- Снова нажмите расходящиеся в разные стороны стрелки в правой части заголовка колонки points. Появится меню извлечения элементов из записи.
- Просто нажмите OК.
- Вы увидите 2 новые колонки: с географической широтой и долготой.
- Теперь поменяйте тип данных в таблице:Переключитесь на вкладку Transform («Преобразования») и выделите все колонки, кликая по их заголовкам с зажатой кнопкой Shift (или нажмите Ctrl+A).
- Нажмите Detect Data Type («Определить тип данных»).
Данные готовы для загрузки в модель.
Вернитесь на вкладку Home.
- Нажмите Close & Apply («Закрыть и применить»).
- Окно Power Query Editor автоматически закроется, данные начнут загружаться в модель.
Шаг 4. Рисуем карту
Вернитесь в Power BI Desktop.
На панели Visualizations («Диаграммы») щелкните по диаграмме Map («Карта») с изображением глобуса.
На рабочей области появится заглушка карты, на месте которой появится сама карта.
- Справа на панели Fields появятся загруженные данные с названиями колонок. Схватите мышкой колонку points.latitude и перетащите ее в поле Latitude («Широта») на панели Visualizations. Если в Visualizations не видите Latitude, то выберите заглушку карты щелчком мыши, и поле появится.
- Повторите действие, перетащив мышкой points.longitude в поле Longitude («Долгота»).
Вы увидите карту с точками:
Ее можно передвинуть мышкой в любое место рабочей области и поменять размеры, схватив курсором за толстые маркеры по углам и сторонам. Точки всех аудиторий сейчас находятся в одной общей куче.
Срезы (слайсеры)
Схватите мышкой название колонки name и перетащите его в любое свободное место на рабочей области.Как только вы отпустите мышку, Power BI создаст новую диаграмму Table («Таблица») со списком аудиторий.
Не снимая выделения с таблицы аудиторий, щелкните мышкой по кнопке Slicer («Срезы») на панели Visualizations.
Теперь можете щелкать по названиям нужных аудиторий, и на карте будут отображаться только координаты принадлежащих им точек.
Больше не нужно гадать!
Шаг 5. Работаем в Excel
Шаги 2 и 3 можно сделать в Excel начиная с 2016-й версии (вообще можно с 2012-й, но понадобится что-то установить – гугл в помощь).Мне не нужно заново повторять эти шаги, поэтому просто копирую все, что сделал в Power BI. Сначала в Power BI нажимаю кнопку Transform data («Преобразовать данные»).
Открывается уже знакомый редактор запросов Power Query Editor, где:
- Выбираю нужный запрос.
- Захожу в расширенный редактор.
- Копирую весь имеющийся там код в буфер обмена.
Показываю на примере Excel 2019 для Windows.
- Переключитесь на вкладку «Данные».
- Нажмите «Получить данные» для открытия контекстного меню.
- Выберите группу «Из других источников».
- Выберите пункт «Пустой запрос».
Откроется редактор Power Query.
- Нажмите «Расширенный редактор».
- Замените код в окне расширенного редактора на скопированный из Power BI или из начала статьи.
- Нажмите «Готово».
Появится предупреждение о необходимости изменить параметры подключения.
- Нажмите «Изменить учетные данные», появится окно «Доступ к веб-содержимому».
- Нажмите «Подключение».
Появится таблица, аналогичная таблице в Power Query. Нажмите «Закрыть и загрузить», и данные загрузятся на лист.
Что делать с ними в Excel? Можно добавлять в каждую аудиторию по одной точке и получить сервис прямого геокодирования, где адрес превращается в географические координаты (но есть и более удобные инструменты, о которых можем поговорить потом).
На самом деле в Excel можно делать почти все то же самое, что и в Power BI. Например, напрямую работать с API Яндекса. Сегодня мы научились загружать аудитории, но можно и подключиться к Яндекс.Метрике или получить статистику из Яндекс.Директ.
Заключение
Надеюсь, статья была полезна, и вы узнали новые способы работы с данными. Задавайте вопросы в комментариях! И пишите, что еще хотите узнать.
Новая версия макроса для Excel (VBA) для быстрого и удобного получения гео-координат/адресов из Yandex и Google. В качестве исходных данных на листе указывается список адресов (для получения координат) или список координат (для обратного геокодирования). Результаты запроса будут выведены в соседние ячейки.
Подробное описание
Некоторое время назад на сайте был опубликован макрос для получения координат из Yandex.
Несмотря на небольшой размер своего кода, макрос в удобном режиме позволяет по заданному списку адресов получать их geo-координаты (широту и долготу).В текущей статье публикуем новый (доработанный) макрос для работы с координатами и адресами.
Изменения в новом макросе:
- Макрос может работать с API Яндекса и Гугла.
Для работы с сервисом Яндекса используйте лист "yandex", для работы с Гуглом - лист "google". Предыдущая версия работала только с Яндекс. - Из кода макроса исключен параметр KEY.
Это значит, что теперь не нужно получать ключ разработчика для корректной работы макроса. Теперь всё работает без KEY. Разумеется, общие ограничения сервисов по прежнему имеют место - это около 25 000 запросов в сутки с одного IP. При необходимости узнать более подробно о действующих ограничениях, следуйте по ссылкам: лимиты для яндекса, лимиты для гугл. - Добавлена возможность обратного геокодирования (определение адреса по долготе и широте).
Для работы с обратным геокодированием необходимо соблюдать несколько важных нюансов, касающихся формата записи строки с координатами:
- для Yandex координаты необходимо указывать в формате (через запятую, без пробелов): долгота,широта
- для Google координаты необходимо указывать в формате (через запятую, без пробелов): широта,долгота
В приложенном файле с макросом на соответствующих листах есть примеры как для Yandex, так и для Google. - Добавлена статистика по количеству обработанных строк.
Статистика начинает отображаться после запуска макроса. Наблюдать статистику можно в строке статус бара Excel. - Типы переменных для работы с XML переименованы в Object.
В предыдущей версии макроса типы были строго заданы как MSXML2.DOMDocument и MSXML2.IXMLDOMNodeList. Как следствие, возникали ошибки в процессе работы, если на ПК пользователя не было соответствующих библиотек "Microsoft XML".
Помимо указанных изменений, новый макрос содержит ряд других улучшений кода, в той или иной степени влияющих на корректность результата. По опыту, при тестировании макроса сервис Yandex показал более точный результат определения координат. Google, в свою очередь, показал более высокую скорость работы.
Также не забывайте, что оба сервиса хоть и служат одной и той же цели, но результат, полученный в каждом из них, немного отличается. Отличие не большое, но оно есть и, возможно, его стоит учесть. Поэтому, если этот момент вам принципиально важен, обязательно вручную проверьте результат в разных поисковых системах.
Для работы с макросом предварительно необходимо получить API-ключ для Yandex/Google. Видео с инструкцией, как подключить нужный API Yandex, можно посмотреть по ссылке.
Соответствующее значения API-ключа указывается на листе "Настройки".
В целом, для Yandex принципиально ничего не изменилось, а вот у Google с августа 2018 г. действуют новые условия получения API (необходимо регистрировать аккаунт Google Cloud Platform и привязывать к нему свою б/карту; после данных настроек суточный бесплатный лимит по-прежнему работает).В случае неработоспособности данного макроса, перед написанием комментария и/или отправки писем на мой адрес обязательно ознакомьтесь со списком основных проблем и способами их решения.
Читайте также: