1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
VitaliyTokarev 22.01.21 - 09:51 | Пытаюсь парсить сайт через "Поле HTML документа".
Дошёл до пути типа: ЭтаФорма.Элементы.Страничка.Документ.children.0.children.1.children.2.children.1.children.1.children.2.children.1.children.1.children.0 Параллельно создаю структуру: СтруктураСтраницы.document.HTML.BODY.MAIN.DIV[1].DIV.DIV[2].DIV[1].DIV[1].FORM На этой форме нужно заполнить логин пароль и нажать кнопку "Войти". Как это сделать програмно не останавливая парсинг и не делая это руками на форме? Вопрос не про загрузку данных с GET и POST. <form id="login-form" action="/user/login" method="post"> <input type="hidden" name="_frontendCSRF" value="xUH58yo1NEeBo831..."> <div class="form-group field-loginform-login required"> <label class="control-label" for="loginform-login"><span class="glyphicon glyphicon-user"></span> Логин</label> <input type="text" id="loginform-login" class="input-lg form-control" name="LoginForm[login]" maxlength="50" placeholder="Обычно совпадает с номером договора" autofocus="autofocus" onfocusout="clearLogin($(this), "/user/filter-login")" tabindex="100" aria-required="true"> <p class="help-block help-block-error"></p> </div> <div class="form-group field-loginform-password required"> <label class="control-label" for="loginform-password"><span class="glyphicon glyphicon-lock"></span> Пароль</label><span class="pull-right"><a class="small" href="/user/forgot-password" maxlength="50" tabindex="104">Забыли пароль?</a></span><input type="password" id="loginform-password" class="input-lg form-control" name="LoginForm[password]" maxlength="50" placeholder="Ваш пароль" tabindex="102" aria-required="true"><p class="help-block help-block-error"></p> </div> <div class="form-group field-loginform-rememberme"> <div class="checkbox"> <label for="loginform-rememberme"> <input type="hidden" name="LoginForm[rememberMe]" value="0"><input type="checkbox" id="loginform-rememberme" name="LoginForm[rememberMe]" value="1" checked="" tabindex="103"> Запомнить меня </label> <p class="help-block help-block-error"></p> </div> </div> <button type="submit" class="btn btn-lg btn-block btn-primary" name="login-button" tabindex="105">Войти</button> </form> | ||
Юрий Лазаренко 1 - 22.01.21 - 10:30 | (0) Если ты уже работаешь с полем html-документа, то ты уже на клиенте, а значит, у тебя есть javascript. Заполни логин и пароль яваскриптом и кликни кнопку. Примеров в интернете полно, вот один: http://catalog.mista.ru/public/338126/ | ||
VitaliyTokarev 2 - 22.01.21 - 10:33 | (1) О, спасибо, в сторону JavaScript не смотрел | ||
Юрий Лазаренко 3 - 22.01.21 - 10:34 | Если кратко, то делаешь:
document.getElementById("loginform-login").value = <Твой логин>document.getElementByClassName("login-button")[0].click() | ||
Юрий Лазаренко 4 - 22.01.21 - 10:35 | Точнее
document.getElementById("loginform-login").value = <Твой логин>
document.getElementById("loginform-password").value = <Твой пароль>
document.getElementByClassName("login-button")[0].click() | ||
VitaliyTokarev 5 - 22.01.21 - 10:36 | |||
Юрий Лазаренко 6 - 22.01.21 - 10:37 | (5) Не во что | ||
VitaliyTokarev 7 - 22.01.21 - 11:02 | (6) Ахаха, а не тут-то было)))) getElementById - Это он прожевал, а getElementByClassName - нет... {Обработка.имПарсинг.Форма.Форма.Форма(111)}: Метод объекта не обнаружен (getElementByClassName) Кнопка = ДокументДляПарсинга.getElementByClassName("login-button"); | ||
VitaliyTokarev 8 - 22.01.21 - 11:08 | Если что, платформа последняя (8.3.18 с чем-то), а вот УТ 10.3 в режиме совместимости 8.2.13 | ||
acht 9 - 22.01.21 - 11:14 | (7) Потому что оно getElementsByClassName ахаха | ||
VitaliyTokarev 10 - 22.01.21 - 11:27 | (9) А, ок)))
А я уже вот так сделал ещё: Логин = ДокументДляПарсинга.getElementById("loginform-login");
Пароль = ДокументДляПарсинга.getElementById("loginform-password");
ЛогинФорм = ДокументДляПарсинга.getElementById("login-form");
Кнопка = ЛогинФорм[5];
Логин.value = "блаблабла";
Пароль.value = "блаблабла";
Кнопка.click(); | ||
Юрий Лазаренко 11 - 22.01.21 - 12:49 | |||
VitaliyTokarev 12 - 27.01.21 - 09:29 | Ещё вопрос возник.
Человек нажал на что-то. В 1С у документа возникло событие "ПриНажатии". А как понять на какой объект на страничке он нажал? | ||
Малыш Джон 13 - 27.01.21 - 09:40 | (12) ТекущийЭлемент у Формы | ||
VitaliyTokarev 14 - 27.01.21 - 09:45 | (13) Текщим элементом является сама строка, которая и есть "Поле HTML документа". А мне нужно что именно в этом самом документе нажали | ||
VitaliyTokarev 15 - 27.01.21 - 12:02 | Нет специалистов? )))))))) | ||
MyNick 16 - 27.01.21 - 12:04 | (0) жмем в браузере F12, вкладка network. Вбиваем лохин, пасворд, жмем куда надо. Смотрим заголовок и тело post запроса.
Делаем то же самое на 1С. Накуа тебе парсинг...? | ||
VitaliyTokarev 17 - 27.01.21 - 12:26 | (16) С пассвордом разобрался. Вопрос другой. Человек работает как в браузере и кое-что смотрит напрямую на форме 1С, как отследить куда нажал? | ||
PloAl 18 - 27.01.21 - 12:52 | (12) Во втором параметре события ПриНажатии - ДанныеСобытия.Element |
|
Список тем форума |