Авторизация на Яндексе средствами программы «Парсер сайтов»

Пример списка действий для авторизации на Яндексе:

 

Действие Параметр Значение
Загрузить страницу с приёмом Cookies URL http://yandex.ru/
Создать новый экземпляр WinHttpRequest да
Кодировка веб-страницы  
 
Открыть HTTP соединение URL https://passport.yandex.ru/passport?mode=auth&from=&retpath=http%3A%2F%2Fwordstat.yandex.ru%2F&twoweeks=yes
Метод (тип) запроса POST
 
Добавить передаваемое POST-значение Параметр login
Значение сюда пишете свой логин
 
Добавить передаваемое POST-значение Параметр passwd
Значение сюда пишете свой пароль
 
Добавить передаваемое POST-значение Параметр twoweeks
Значение no
 
Отправить HTTP запрос Сохранять Cookies да
 
Получить ответ сервера Кодировка веб-страницы  
 
Загрузить ИСХОДНЫЙ КОД веб-страницы URL https://wordstat.yandex.ru/
Кодировка веб-страницы  
Загружать все страницы результатов  
Выполнять после каждой загрузки  
 

 

Первое действие, — Загрузить страницу с приёмом Cookies — требуется, чтобы получить от сайта идентификатор пользователя:
Set cookie: yandexuid = 1915505271423482584

Именно к нему потом будет привязана авторизация.

 

Далее, мы открываем POST-соединение на адрес https://passport.yandex.ru/passport?mode=auth...
и передаем туда данные (логин и пароль) при помощи действий Добавить передаваемое POST-значение

После отправки запроса (действие Отправить HTTP запрос), если логин-пароль принят Яндексом,
сайт выдает нам идентификатор сессии
Set cookie: Session_id = 3:1423482584.0.0.1423486520000:1a7Tsg:31.0|271315524.0.2|123846.703584.3Lt5CW-cq91HSDfCEMqZ064WADk

и автоматически выполняется редирект на страницу https://passport.yandex.ru/auth/finish/...
что является для нас подверждением того, что авторизация успешно выполнена.

 

После выполнения этого набора действий (его можно прописать в автоматически выполняемом при запуске парсера наборе действий Parser_Start),
мы можем выполнять загрузку произвольных страниц сайта, — и, при этом, мы будем авторизованы на сайте

(установленные Cookies программой запоминаются, и передаются при каждом запросе исходного кода веб-страницы)

 


При тестировании набор действий, справа появится информационное окно,
где можно увидеть, какие Cookies установлены сайтом, и какие редиректы были выполнены:

действия для авторизация на Яндексе

(щелкните на картинке для увеличения)

Комментарии

Не планируется обновление мануала об аторизации на Яндекс средствами парсера? Что в данном посте описано, давно не работает, очень мудрённая авторизация стала у Яндекса, а очень нужно работать с авторизацией

Спасибо Вам за ваш труд!
Возник вопрос:
Каким образом можно извлечь несколько картинок из карточки товара и они все под тегом li

Максим, все сайты (ну, или 99.9%) имеют авторизацию, основанную на Cookies
Смотрите видеоинструкцию по настройке авторизации:
http://excelvba.ru/programmes/Parser/manuals/Loading_Pages_and_Logon

А что сайт весь на скриптах, - это не помеха для парсера.
Просто настройка сложнее будет
Если сами не разберётесь, — можем настроить под заказ.

Добрый день. Сайт с которого нужно взять контент в excel работает подобно Yandex, с необходимостью авторизовыватся с помощью Cookies. В тексте страниц сайта отсутствуют гиперссылки, а все внутренние перемещения производятся посредством нажатия кнопок, тег которых начинается с

Евгений, во-первых, не надо постить коммент в статью, не относящуюся к теме вопроса.
Во-вторых, я ничем помочь не смогу, не видя конкретного сайта

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

Можем настроить парсер под заказ.
заказы на парсер принимаются в таком виде
http://excelvba.ru/programmes/Parser/order

2й Вопрос - по какой причине при работе парсера, часть текста в html переводится на русский язык (заголовки)? Т.е. елси я на странице нажимаю ПКМ - просмотр кода страницы - html на английском языке полностью. А при работе парсера с командой "Загрузить исходный код вэбстраницы" с кодировкой direct (с другими типами кодировки не работает) чать html на русском. Поможет ли способ, освещенный у вас в статье "Добавление заголовков к HTTP запросу". Там вы пишите, что можно указать в запросе нужное местоположение (к примеру сша)

Еще раз здравствуйте. Спасибо за оперативные ответы. Вопрос - при помощи каких действий можно выполнить ряд задач:
1. Парсер на странице, после сбора данных, должен нажать на кнопку "Связаться"
2. Откроектся Pop-up окно, с формой обратной связи - здесь парсер должен заполнить 3 поля
3. Далее парсер должен поставить галочку и нажать отправить
Так вот какие использовать действия, и в каком направлении искать информацию.

Огромное спасибо за столь оперативный ответ

В настройках парсера, идёте на вкладку ДОПОЛНИТЕЛЬНО, потом на подвкладку НАБОРЫ ДЕЙСТВИЙ,
и создаёте набор действий с названием Parser_Start
(этот набор действий будет выполняться автоматически при запуске парсера)

В нём добавляете действие «Авторизация POST запросом» (ну или как вы там авторизуетесь)

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

Вопрос решен при консультации по скайпу
(в запросе требовалось передать заголовок Referer, чтобы всё заработало)

Что самое интересное - не работает. Ссылка вида DOMEN/?PIN=111111 не показывает то что надо, надо именно нажать кнопку "обновить".

По идее, должен сработать обычный способ загрузки страницы
(действие «Загрузить исходный код веб-страницы»)
Только к ссылке (URL) справа надо добавить ?PIN=927192

Здравствуйте, подскажите, пожалуйста как правильно написать запрос. На сайте есть такая форма:

<form method="get">
    <input type="hidden" value="927192" name="PIN"></input>
    <input type="submit" value="обновить"></input>
</form>

нужно получить данные, которые появятся после нажатия кнопки "обновить" (всю страницу можно).

тут всё от конкретного сайта зависит
Иногда можно сразу отправлять POST запрос с логином и паролем,
но иногда надо предварительно получить от сайта куки с идентификатором сессии или пользователя

Так что проще предварительно прогрузить любую страницу сайта, как в описанном примере
(в этом примере во всех действиях поддерживается приём и отправка Cookies)

Здравствуйте! Посоветуйте, как быть, если для авторизации нужно отправить Cookie.
Т.е. сначала нужно выполнить соединение, получить куки, и только потом следующим запросом передать логин, пароль, куки и т.д.?
У меня редирект выполняется но либо на страницу авторизации либо на главную.
Спасибо!