Вход | Регистрация

1С:Предприятие ::

Метки: 

Авторизация на сайте rosrabota.ru

Я
   Evil-Wisp
 
09.07.18 - 09:04
Здравствуйте.
Нужно по ссылке вида rosrabota.ru/my-response-download-pdf/1672783
скачивать резюме. Если делать GET запрос, то сайт возвращает Location//rosrabota.ru/new/login?redirect_to=%2F%2Frosrabota.ru%2Fmy-response-download-pdf%2F1672783


Пытаюсь делать POST запрос на авторизацию и получение cookie:

АдресСервера = "rosrabota.ru";

    АдресСтраницыАвторизации = "new/login?";

    Соединение = Новый HTTPСоединение(АдресСервера);

    // Создать файлы запроса и получения
    ВремКаталог = КаталогВременныхФайлов() + "tempParser";
    СоздатьКаталог(ВремКаталог);
    УдалитьФайлы(ВремКаталог,"*.*");

    ИмяВыходногоФайла = "" + ВремКаталог + "\answer.html";
    ИмяФайлаОтправки = "" + ВремКаталог + "\request.html";

    Логин = "job@domen.ru";
    Пароль = "1337";

    // Подготовить файл для POST запроса

    POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF16,, Истина, Символы.ПС);
    POSTПараметры.Записать("user=" + Логин + "&password=" + Пароль); //login email username user
    POSTПараметры.Закрыть();

    // Определить заголовки POST, используя алгоритм "application/x-www-form-urlencoded"

    POSTЗаголовки = Новый Соответствие();
    POSTЗаголовки.Вставить("POST "+ АдресСтраницыАвторизации +" HTTP/1.1");
    POSTЗаголовки.Вставить("Host", АдресСервера);
    POSTЗаголовки.Вставить("Referer", "http://"+АдресСервера);
    POSTЗаголовки.Вставить("Connection", "keep-alive");
    POSTЗаголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");

    // Отправляем POST запрос

    Попытка
        ОтветHTTP = Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, АдресСтраницыАвторизации, ИмяВыходногоФайла, POSTЗаголовки);
    Исключение
        Сообщить("Неудачная попытка соединения с " + АдресСервера + ": " + ОписаниеОшибки());
        Возврат;
    КонецПопытки;

    // Получим ресурс на который нас перебросил сервер
    Если ОтветHTTP.КодСостояния = 302 Тогда
        АдресСтраницы = ОтветHTTP.Заголовки["Location"];
    КонецЕсли;
    
    // Определить заголовки GET, с куками полученными от сервера
    GETЗаголовки = Новый Соответствие();
    GETЗаголовки.Вставить("Cookie", ОтветHTTP.Заголовки["Set-Cookie"]);
    GETЗаголовки.Вставить("Connection", "keep-alive");

    // Получаем страницу, указывая куки

    ОтветHTTP = Соединение.Получить("/my-response-download-pdf/1672783", ИмяВыходногоФайла, GETЗаголовки);

В файле answer.html получаем ответ:

{"error":"<b>Авторизоваться не удалось.</b><br>\nВероятно, вы&nbsp;допустили ошибку.\nПроверьте <b>раскладку клавиатуры</b>,\nне&nbsp;нажата ли&nbsp;клавиша &laquo;<b>Caps Lock</b>&raquo;,\nи&nbsp;попробуйте ввести email и&nbsp;пароль ещё раз.\n        ","exec":null}

В ответHTTP куков нет.

На сайте форма окна авторизации
<form method="post" class="common">
          <input type="text" name="email" placeholder="Email">
          <input type="password" name="password" placeholder="Пароль">
          <div class="nowrap">
            <button type="submit" class="btn btn-green">Войти</button><a href="#" class="password-reset">Забыли пароль?</a>
          </div>
        </form>

Логин и пароль правильные. Подскажите, какие параметры можно попробовать передать, чтобы авторизация прошла
 
 
   Evil-Wisp
 
1 - 09.07.18 - 09:11
Авторизацию прошел:)
Нужна была КодировкаТекста.ANSI
Параметры "email=" + Логин + "&password=" + Пароль

Дальше передал куки, пока не цепляет, перенаправляет снова.
   Звездец
 
2 - 09.07.18 - 09:13
а для этого принципиально использовать 1с?
   Evil-Wisp
 
3 - 09.07.18 - 09:17
(2) В принципе нет. Можно передать путь к скачанному файлу в процедуру.
   Звездец
 
4 - 09.07.18 - 09:25
(3) ну и попробуй например на php или чем то что тебе ближе. Примеров в интернете много
   Evil-Wisp
 
5 - 09.07.18 - 09:39
(4) И на 1С есть примеры.

Решил. Помогло HTTP авторизация на сайте через POST запрос

//  в Куки надо чистые куки из set-cookie передавать, без всяких частей и слэшей.
Т.е. у меня только "sess=хххххххххххххххххххххххх;"
   Evil-Wisp
 
6 - 09.07.18 - 09:39
Всем спасибо:)


Список тем форума
  Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует