Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Авторизация на стороннем сайте и парсинг его страницы          
ivan.kh Подменю пользователя
сообщение 06.03.19, 11:12
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 1 раз
Рейтинг: 0

Добрый день.
1С:Предприятие 8.3 (8.3.10.2580)
Есть сайт www.agrochart.com
После авторизации на нем будут доступны определенные страницы с аналитикой.
Хочу подгружать в базу эту аналитику, но не выходит.
Посмотрел через браузер, то процесс там выглядит так:
1. При переходе на страницу авторизации получаем уникальный token, назовем его token1
2. Потом post запросом передаем логин, пароль и в КУКИ запихиваем этот token1
3. В результате авторизации должны получить SessionId и новый token по которым можем дальше "ходить" по страницам.

Не могу понять, что именно делаю не так, но ошибки после отправки post нет (получаю код 301, хотя по логике должен быть 302), но вот SessionId и новый token не приходят.
Код под спойлером

Процедура КнопкаВыполнитьНажатие(Кнопка)    
    
    Сервер = "www.agrochart.com";
    Ресурс = "/en/users/login/";    

    Логин  = "test06032019@gmail.com";
    Пароль = "Qq123456";

    // Подключаемся к сайту.
    Соединение = Новый HTTPСоединение(Сервер, 443, , , , ,
      Новый ЗащищенноеСоединениеOpenSSL()
    );
    
    Запрос = Новый HTTPЗапрос(Ресурс);

    Результат = Соединение.Получить(Запрос);

    // В куках нам должны вернуть идентификатор сессии.
    Куки = Результат.Заголовки.Получить("Set-Cookie");
    Куки = СтрЗаменить(Куки, ";", Символы.ПС);
    ИдентификаторСессии1 =  Сред(СтрПолучитьСтроку(Куки, 1),11);    

    //Сообщить("Тело результата: " + Результат.ПолучитьТелоКакСтроку());
        
    Сообщить(ИдентификаторСессии1);
    Сообщить("Код возврата " + Результат.КодСостояния);    
    КодПриглашения = "next=" +
        "&email=" + Логин +
        "&password=" + Пароль +
        "&csrfmiddlewaretoken=" + ИдентификаторСессии1;    

    Запрос = Новый HTTPЗапрос();
    Запрос.Заголовки.Вставить("Referer","https://www.agrochart.com/en/users/login/");
    Запрос.Заголовки.Вставить("Cookie","csrftoken="+ИдентификаторСессии1);
    Запрос.УстановитьТелоИзСтроки(КодПриглашения, "ISO-8859-1");
    //Сообщить(Запрос.ПолучитьТелоКакСтроку());

    Результат = Соединение.ОтправитьДляОбработки(Запрос);

    Сообщить("Нам вернули код " + Результат.КодСостояния);      
    
КонецПроцедуры

Petre Подменю пользователя
сообщение 06.03.19, 12:40
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Попробуйте с помощью fiddler сравнить запросы и ответы.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

ivan.kh Подменю пользователя
сообщение 06.03.19, 14:15
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 1 раз
Рейтинг: 0

Petre @ Сегодня, 12:40 * ,
Да и fiddler смотрел, понять в чем загвоздка не вышло.

Petre Подменю пользователя
сообщение 06.03.19, 14:52
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Т. е. запросы и ответы и при работе в браузере, и при работе из 1с одинаковы?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

ivan.kh Подменю пользователя
сообщение 06.03.19, 16:34
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 1 раз
Рейтинг: 0

Petre @ Сегодня, 14:52 * ,
Не совсем, я там только разобрался как проверить правильно ли я token1 выбрал, дальше в fiddler'e запутался и смотрел только через браузер.

ivan.kh Подменю пользователя
сообщение 14.03.19, 11:33
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 11
Спасибо сказали: 1 раз
Рейтинг: 0

В итоге сделал все так:
- создал парсер на python, который логинится на сайте, парсит нужные страницы и сохраняет результат в csw
- в 1С регламентным заданием затягиваю csv.

Если кому нужен по этому сайту парсер, пишите в ЛС - скину.

Спасибо сказали: taalay,

taalay Подменю пользователя
сообщение 14.01.21, 6:23
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

ivan.kh @ 14.03.19, 11:33 * ,
можете скинуть пожалуйста? bolotbekovtaalay@gmail.com

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 21:37
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!