Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
1

Создать программу, которая сама заполняет input на сайте и жмет кнопочку отправить

27.05.2014, 13:21. Показов 1855. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Хотел написать программу, которая сама заполняет input на сайте и жмет кнопочку отправить.
Ломаю второй день голову, логически не могу себе это представить.
Подскажите.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2014, 13:21
Ответы с готовыми решениями:

Создать программу которая заполняет массив 12x12
Задание №1 А. Создайте программу, которая заполняет массив 12x12 числами по следующему правилу:...

Создать программу, которая заполняет квадратную матрицу по спирали
Создать программу, которая пополняет квадратную матрицу порядка n натуральными числами 1, 2, 3,...

A. Создать программу, которая заполняет массив 8 на 8 числами и по следующему правилу
2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 10 4 5 6 7 8 9 ...

Возможно ли создать программу, которая сама бы компилировала программу
Вообщем тема такова,возможно ли написать программу которая могла сама скомпилировать другую...

10
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
27.05.2014, 16:07 2
смотря какой сайт - многие крупные сайты предоставляют свой апи для программистов. Так или иначе тебе придется собирать POST/GET запрос и отправлять его на сервер из программы. Нужно изучить как из input в запросе передаются данные и как бы эмулировать программно такой запрос
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
27.05.2014, 16:15  [ТС] 3
api нету, сайт ask.fm
хочу сделать так, в LineEdit вставляешь свой id
в textEdit(к примеру) будет текст, и кнопочка старт и он отправляет их)
мне просто стало интересно как это сделать.
"Нужно изучить как из input в запросе передаются данные и как бы эмулировать программно такой запрос" - например?
0
Pied Piper
236 / 227 / 57
Регистрация: 15.01.2013
Сообщений: 855
27.05.2014, 16:20 4
Ставишь снифер, и смотришь понажатии на "отправить" (или как там называется кнопка на сайте) какие параметры передаются в запросе. потом сам конструируешь такой запрос и отправляешь.
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
27.05.2014, 16:29  [ТС] 5
Хотелось бы, что бы вы разжували мне все
"_ask.fm_session=BAh7CDoPc2Vzc2lvbl9pZCIlMTE4YWZkZGY0MmIyZjViMmU5YTI5ZjhmOGI2MDM 4ZTI6EG9sZF9nZXRfdXJsIhAva2FwaXRvc2hxYToQX2NzcmZfdG9rZW4iMUNaMktJa2U2NDJJRnc3bjZ vOTFjMXJBU1ZLRWFEMEVVeXdmTEI2U0tFbVE9--d7724590c55fe65142b951a01be21401b46edafa; path=/; HttpOnly"

вот такое отправляется и как это задать программно?
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
28.05.2014, 01:54 6
Все достаточно просто, если знать в какую сторону копать...

Внимательно посмотрите на форму и на запрос. Форма отправляет POST запрос на http://ask.fm/UserName/questions/create
и в качестве параметров передает
authenticity_token в размере 2 штук(???), который генерируется скриптом
Javascript
1
$.ajax({data:$.param($(this).serializeArray()) + '&authenticity_token=' + encodeURIComponent('SIEspvB84SxcTTvmUTIcpUfVW3eC8I2xwdpB2r0EAGY='), dataType:'script', type:'post', url:'/UserName/questions/create'}); Forms.Profile.afterSubmit(); return false;
и параметром question[question_text], который содержит текст самого сообщения.

P.S. Отправив 3 разных запроса ключ у меня был один и тот же:
SIEspvB84SxcTTvmUTIcpUfVW3eC8I2xwdpB2r0EAGY=
Возможно, он действителен для всех и всегда
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
28.05.2014, 12:17  [ТС] 7
ох, зря я полез как новичок, что-то вообще не доходит (
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
29.05.2014, 17:32  [ТС] 8
Помогите составить запрос, мучуюсь уже два дня, документация не помогает(
Ах еще, надо как-то получить ключ, для каждого профиля свой ключ
Ув. Программисты, помогите, очень интересно это воплатить :0
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
29.05.2014, 21:12 9
Лучший ответ Сообщение было отмечено stik77 как решение

Решение

Все оказалось куда проще, чем сделать авторизацию в вк без WebView... о_о

Приведенный ниже код не является показателем того, как надо писать программы, а служит исключительно примером составления запроса для отправки вопросов на сайт ask.fm посредством программы

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    QEventLoop l;
    QString userName = "JastTestUser";
    QString basicUrl = "http://ask.fm/";
 
    QNetworkAccessManager *man = new QNetworkAccessManager(this);
    connect(man, SIGNAL(finished(QNetworkReply*)), &l, SLOT(quit()));
 
    auto r = man->get(QNetworkRequest(QUrl(basicUrl + userName)));
    l.exec();
 
    QByteArray rData = r->readAll();
    QRegExp re("<input name=\"authenticity_token\" type=\"hidden\" value=\"(.+)\" />");
    re.setMinimal(true);
    re.indexIn(rData);
    qDebug() << re.cap(1);
 
    QUrlQuery q;
    q.addQueryItem("authenticity_token", re.cap(1));
    q.addQueryItem("question[question_text]", "Test Question1");
 
    QNetworkRequest req(QUrl("http://ask.fm/" + userName + "/questions/create"));
    req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
 
    auto reply = man->post(req, q.toString(QUrl::FullyEncoded).toUtf8());
    l.exec();
    
    qDebug() << "Done";
Добавлено через 17 минут
Все, что вам нужно было сделать:
1) Узнать адрес, на который отправляется вопрос (адрес содержится в атрибуте формы на сайте) и узнать тип запроса (POST или GET)
2) Узнать, какие поля передаются туда (в нашем случае только 2 поля передается (authenticity_token, question[question_text]))
3) Достать данные из всех возможных input'ов
4) Отправить POST или GET запрос (в зависимости от того, что отправляет форма) на адрес, который мы узнаем в пункте (1), передавая поля (из пункта (2)) со значениями (из пункта (3))
0
1 / 1 / 1
Регистрация: 27.05.2014
Сообщений: 76
30.05.2014, 02:22  [ТС] 10
Flassie, спасибо тебе, выручил, буду изучать
"предупреждение: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]
auto r = man->get(QNetworkRequest(QUrl(basicUrl + userName)));"

Подскажите мне вот это еще, что это?
0
187 / 172 / 38
Регистрация: 03.08.2012
Сообщений: 596
30.05.2014, 02:35 11
Цитата Сообщение от stik77 Посмотреть сообщение
Подскажите мне вот это еще, что это?
В .pro файл добавь след. строку:
QMAKE_CXXFLAGS = -std=c++0x
0
30.05.2014, 02:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2014, 02:35
Помогаю со студенческими работами здесь

создать программу которая заполняет массив 12х12 числами по следующему правилу
0 1 1 1 1 1 1 1 1 1 1 1 1 0 2 2 2 2 2 2 2 2 2 2 1 2 0 3 3 3 3 3 3 3 3 3 1 2 3 0 4 4 4 4 4 4 4...

Создать программу, которая заполняет массив 9х5 числами по следующему правилу
Создать программу, которая заполняет массив 9х5 числами по следующему правилу: 1 0 -1 -2 -3 ...

Как создать программу которая сама создает файл
Вообщем нужен небольшой кусок кода который отвечает за создание файла. Есть переменная k которая...

Clojure Скажите в lisp можно создать программу которая сама себя модифицирует?
Заменяет код программы частично или полностью. И выполняет его. Возможно такое?


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru