|
1С и сайты | ☑ | ||
---|---|---|---|---|
0
SitiyDenis
14.03.16
✎
17:38
|
Добрый день.
Есть сайт с формой логина и пароля, можно ли из 1С попасть на сайт залогиниться (ввести пароль, логин и нажать кнопку). Далее разобрать страницу и показать ее в 1с? (все это делать программно) Есть у кого-то статьи, ссылки или обработки? С чего начать? |
|||
1
mikecool
14.03.16
✎
17:49
|
||||
2
Карупян
14.03.16
✎
18:01
|
(1) можно и без этого всего
|
|||
3
Serginio1
14.03.16
✎
18:16
|
(2) Можно, но с 1 значительно проще
|
|||
4
Карупян
14.03.16
✎
18:20
|
(3) я бы не сказал
|
|||
5
Serginio1
14.03.16
✎
18:21
|
Давай меряться. Я привожу свой вариант ты свой.
|
|||
6
Serginio1
14.03.16
✎
18:22
|
В статье есть пример отправки пост запроса с полем валидатором
http://catalog.mista.ru/public/466196/ |
|||
7
Serginio1
14.03.16
✎
18:23
|
Клиент = Врап.СоздатьОбъект(HttpClient);
Клиент.BaseAddress = Врап.СоздатьОбъект("System.Uri",WebsiteUrl); // Стоит отметить, что по умолчанию HttpClient использует Cookie //Загрузим основную страницу res = Клиент.GetStringAsync("").Result; document = parser.Parse(res); // Найдем адрес страницы для авторизации Аннотация= document.QuerySelector("a.log-in"); //Полный относительный путь Аннотация.PathName+Аннотация.Search // Но в данном случае Аннотация.Search просто нет // Если использовать BrowsingContext то полный путь содержится в Href res= Клиент.GetStringAsync(Аннотация.PathName).Result; document = parser.Parse(res); // Найдем элемент form для авторизации //В которой есть поле для верификации __RequestVerificationToken Форма=document.QuerySelector("form"); Сообщить(Форма.Method); d = Врап.СоздатьОбъект(Dictionary); Для каждого Элемент Из Форма.Elements Цикл Элем=Врап.ПолучитьИнтерфейс(Элемент,"IHtmlInputElement"); //Нужны только Input элементы //Выберем все элементы Input // и запишем их имена и значения в словарь Если Элем<> Неопределено Тогда d.Add(Элем.Name, Элем.Value); Сообщить(Элем.Name+"="+Элем.Value); КонецЕсли; КонецЦикла; d.set_Item("User", "User"); d.set_Item("Password", "secret"); Контент=Врап.СоздатьОбъект(FormUrlEncodedContent,d); // Отправим пост запрос с данными формы по адресу находящемся в Action резулт=Клиент.PostAsync(Форма.Action,Контент).Result; // И получим ответ res=резулт.Content.ReadAsStringAsync().Result; document = parser.Parse(res); // Найдем на этой странице ссылку на секретную страницу Аннотация= document.QuerySelector("a.secret-link"); res= Клиент.GetStringAsync(Аннотация.PathName).Result; document = parser.Parse(res); // Получим из первого параграфа искомое значение Сообщить(document.QuerySelector("p").TextContent) |
|||
8
Карупян
14.03.16
✎
18:44
|
(5) Пример парса конкретного сайта или пример неведомой универсальной фигни?
|
|||
9
Serginio1
14.03.16
✎
22:52
|
(8) Пример конкретного тестого сайта. Но подход универсален. Поддержка куков автоматическая.
Вот другой пример конкретного сайта .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд |
|||
10
Serginio1
14.03.16
✎
23:02
|
(8) Вот тестовый сайт http://www.codeproject.com/Articles/1017190/Submitting-Forms-with-AngleSharp
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |