Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1

Запостить сообщение в группе на odnoklassniki.ru (полноценное сообщение, с изображением)

28.10.2014, 22:09. Показов 2401. Ответов 3

Студворк — интернет-сервис помощи студентам
Доброго времени суток.

Задача:
Запостить сообщение в группе на odnoklassniki.ru (полноценное сообщение, с изображением).

Прогресс:
Через мобильную версию од (m.odnoklassniki.ru) прохожу авторизацию, и успешно оставляю сообщение, но через мобильную версию нельзя прикрепить изображение к посту.

Делаю тоже самое, но с обычной версией ОД, все прекрасно, но появляется одно большое НО.
Когда мне нужно засабмитить форму, я обычно читаю все элементы input, и передаю их значения как POST данные.
(Мне также помогает хороший друг Fiddler).

В обычной версии ОД, страничка, на которой нужно засабмитить форму - содержит тонну обфусцированного javascript.
Где-то внутри этого js происходит добавление новых параметров в POST данные.

Вобщем проблема в следующем: POST форма хочет параметры, которые рассчитываются динамически через JS, а не лежат спокойно в html коде. Отследить что происходит внутри JS - нереально. Как быть? Как засабмитить форму?

Пример, чтобы было понятно:

Псевдокод
Code
1
2
3
4
<form action="1.php">
<input name="param1" value="hello" type="hidden"/>
<input type="submit"/>
</form>
ожидаются POST данные: param1=hello&
как на самом деле: param1=hello&p_sId=-4564352888959473640&st.status.postpostFo rm=-111421384

Как рассчитались параметры p_sId=-4564352888959473640 st.status.postpostForm=-111421384 неизвестно, и засабмитить форму без этого не получается.

Единственное что приходит на ум - использовать windows forms WebBrowser элемент.
Но, все же хотелось бы обычными реквестами осилить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.10.2014, 22:09
Ответы с готовыми решениями:

Немогу запостить сообщение
Привет. Я использую Opera 7.20 и все мои собщения пропадают, хотя после нажимания на кнопку 'отправить сообщение'. Появляеться страница...

Как запостить новость в группе от имени администратора?
Здравствуйте! Честно говоря я уже перечитал всю документацию по постингу на стенку в группах, но у меня так и не получается что либо с...

Почему не приходит сообщение группе SignalR?
Методы из хаба. public void UserConnect(string message) { Clients.Group(&quot;managers&quot;).notifyManager(Context.ConnectionId, message);...

3
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
29.10.2014, 00:33
Можно для начала попробовать скормить скрипты фантому - http://phantomjs.org/ ,
если не получится , то придется браузер , рекомендую http://wiki.awesomium.net/ - он получше будет чем WebBrowser , плюс там можно только часть движка задействовать - WebView , без граф.оболочки , хоть из консоли.
0
70 / 69 / 10
Регистрация: 14.06.2009
Сообщений: 310
Записей в блоге: 1
29.10.2014, 06:31  [ТС]
Еще такой вопрос, не пойму как сделать правильно:

На загруженной в WebBrowser странице, есть неактивная кнопка, она активируется только после того как в textarea появится текст.

Как это сделать?

C#
1
2
3
var textArea = browser.Document.GetElementById('textarea-id').InnerText = "MY TEXT";
var button = browser.Document.GetElementById('button-id');
Console.WriteLine(button.OuterHtml);
вывод <button class="disabled" id="button-id"/>

т.е. если программно вставить текст, css элемент disabled не пропадает (если руками вписать - пропадает), надо как-то заставить javascript сработать?
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
29.10.2014, 14:21
Там смотря на какое событие JS реагирует , если просто на фокус поля или клик ,то можно его прокликать, например
C#
1
2
txt.click();
txt.setAttribute("value",value);
Если не поможет , то можно заинжектить свой js код на вызов события: (только для KeyboardEvent)
JavaScript
1
2
3
var evt = document.createEvent("MouseEvents");
evt.initEvent("mousedown", true, true);
document.getElementById("myElement").dispatchEvent(evt);
http://msdn.microsoft.com/en-u... s.85).aspx

Ну или как вариант , посмотреть под отладчиком какой код JS начинает исполнятся при вводе текста, после чего вызвать его вручную , при этом разбираться что там за абракадабра совсем не обязательно.
И попробуй различные JS деобфуськаторы , может помогут.


P/S Вообще с сайтами такого уровня тяжело бороться , они уже собаку сьели на защите от ботов , так что встретите еще немало проблем на своем безнадежном пути ).

Легальные операции предусмотрены в API
http://apiok.ru/wiki/display/TS/Home
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.10.2014, 14:21
Помогаю со студенческими работами здесь

Не могу поставить подпись под изображением и над изображением, и как изображение разместить в центре страницы
Вот сам код и скриншот что нужно сделать &lt;!DOCTYPE HTML PUBLIC &quot;-/W3C//DTD HTML 4.01 Transitional//EN&quot; ...

Послать сообщение пользователю (имя пользователя, терминал и сообщение вводятся с клавиатуры)
Здравствуйте! У меня есть задание: Написать командный файл, реализующий меню из трех пунктов: 1-ый пункт -вывести всех пользователей, в...

Если Выбран Вариант 1, то сообщение 1 стираем-пишем сообщение 2
Здравствуйте, помогите написать скрипт вида: Сообщение 1 Возможные варианты выбора 1 2 Если Выбран Вариант 1, то...

Написать полноценное приложение
Доброго времени суток! Есть идея заняться разработкой приложения для социальных сетей (например, ок и вк). Имеются знания HTML,...

Полноценное дерево из запроса
всем привет, я чета туплю. необходимо вытащить дерево неограниченной иерархии одним запросом. т.е. есть к примеру справочник или план...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru