Russian Qt Forum

Qt => Работа с сетью => Тема начата: qlewer от Апрель 19, 2020, 20:37



Название: программно "нажать на кнопку" на сайте
Отправлено: qlewer от Апрель 19, 2020, 20:37
пытаюсь авторизоваться вк (чтобы научиться нажимать на кнопки)
исследую элемент при помощи мазилы на странице https://m.vk.com, нахожу ссылку (приложение), по которой, в теории, должен быть переход при нажатии на кнопку "войти"
при помощи QtNetwork пытаюсь отправить по этой ссылке post-запросом логин и пароль - не получаю в ответ вообще ничего. подскажите, пожалуйста, что делаю не так?
Код:
void MainWindow::on_pushButton_2_clicked()
{
       QUrl url(ui->lineEdit->text());
       QNetworkRequest request(url);
       request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
       QByteArray postData;
       QUrlQuery query;
       query.addQueryItem("pass","parolb");
       query.addQueryItem("email","89968520000");
       postData = query.toString(QUrl::FullyEncoded).toUtf8();
       QNetworkReply* reply=manager->post(request, postData );
       connect( reply, SIGNAL(finished()), this, SLOT(replyFinished()));
}


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: sergek от Апрель 19, 2020, 22:22
так в ответ ничего и не приходит:
Код:
C:\Users\sergek>curl  https://login.vk.com -d "pass=parolb&email=89968520000"

C:\Users\sergek>


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: qlewer от Апрель 19, 2020, 22:27
как нужно правильно, что делаю не так? и в чем вызывается этот curl? тоже хочу так уметь


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: sergek от Апрель 19, 2020, 22:34
Я понял, вас забанили в яндексе. Бывает. Попробуйте в гугле, что ли...


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: qlewer от Апрель 19, 2020, 22:59
прогуглю про curl
с запросом авторизации вк что я делаю не так?


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: alex312 от Апрель 20, 2020, 12:06
qlever, не мучайся.
У  тебя не выйдет при помощи QNetworkAccessManager работать с vk.com .

Надо пользовать vk API или браузер.

как и в этом случае:
http://www.prog.org.ru/index.php?topic=32670.msg241662#msg241662


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: qlewer от Апрель 21, 2020, 13:07
"или браузер" - какой класс наиболее подходит для этих целей?
p/s т.е. с принципом работы всё верно? стучусь в по нужной ссылке? я бы понял, если бы там были данные, которые этим класс нельзя обработать. но так и не понял, почему там пусто


Название: Re: программно "нажать на кнопку" на сайте
Отправлено: alex312 от Апрель 21, 2020, 22:03
Цитировать
"или браузер" - какой класс наиболее подходит для этих целей?
на этот вопрос я давал ответ в приведенной мною ссылке.
но ладно, скопирую:
Цитировать
Если находиться в рамках Qt, то надо использовать либо https://doc.qt.io/qt-5/qtwebengine-index.html ,
либо https://github.com/qt/qtwebkit .

Либо сторонние тулзы типа https://slimerjs.org/

Цитировать
с принципом работы всё верно?
не совсем понял вопрос, но отвечу как понял.
Ели ты хочеш обойтись без "браузеров" то тебе необходимо использовать vk-api.
Что-то типа https://github.com/alekseysidorov/vreen (нагуглил за пару минут).

Цитировать
стучусь в по нужной ссылке?
похоже что нет. Сравни ссылку со своего скриншота и ту по которой ты стучишся.

Цитировать
но так и не понял, почему там пусто
неправильная ссылка.