Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 8, 2018 21:27:51

Oberoda
Зарегистрирован: 2018-04-01
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнить форму Mechanicalsoup

Всем привет. Хочу скриптом отправить сообщение в чат. Технически надо только выбрать форму, заполнить поле и нажать кнопку. Никакой регистрации, динамических страниц и всего такого.
Для тренировки выбрал чат http://esl-chat.com/.
Так вот, в Mechanicalsoup делаю все как по книжке -

 import mechanicalsoup
browser = mechanicalsoup.StatefulBrowser()
browser.open("http://esl-chat.com/")
с = browser.get_url()
print("Заходим на " +с)
browser.get_current_page()
browser.select_form()
browser.get_current_form().print_summary()

По идее последняя команда должна распечатать все доступные поля из формы. Но похоже что он не видит форму. Тогда странно что после browser.select_form() не выдает ошибку. Как я понял из документации эта команда выбирает первую форму на странице, если параметр не указан явно.
Если набираем
b = browser.select_form()
print(b)
То он пишет что выбран объект 0x099четатамеще. Заметил что каждый раз эти цифры меняются. Это страница динамическая или он каждый раз хватает разный объект думая что это форма? Или хватает не ту форму и присваивает ей временное имя?
Просматривая код страницы подумал что там форм вообще нет, а сделано через таблицы все как-то. Как их выбирать, если это так?
Стоит сказать что в html, css и всем таком я разбираюсь крайне слабо, так что пожалуйста объясните как для аутиста.
И не лучше ли это дело как то через request оформить? (параметры запросов смотреть умею)

Отредактировано Oberoda (Ноя. 8, 2018 21:43:09)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version