日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP|Qt实践-Qt编写某平台刷评论软件(含代码与思路)

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP|Qt实践-Qt编写某平台刷评论软件(含代码与思路) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

?

思路

Qt5代碼


?

思路

功能是用軟件,刷某平臺留言。以測試成功!在此不放截圖了,現在直接來看思路!

這里要先把號登上,然后人為手動留言,再抓包分析

首先是用Fidder去分析下HTTP封包:

最關鍵的就是這個包,從中我們可以知道這個是使用了POST方法。submit?id=文章的ID號。

這里還有個referer也是一個關鍵,在后面的偽造封包中,也是要填寫的!

其中Cookie就不用說了,證明了這個賬號等信息。

而HTTP中的body包含這個數據:

replyid=&content=XXXXX;

下面來解碼下這個XXX的內容

這里就知道這個內容為贊!

下面只要用Qt5偽造這個包就可以了!

?

?

Qt5代碼

程序運行截圖如下:

源碼如下:

#include <QCoreApplication> #include <QSslConfiguration> #include <QFile> #include <QNetworkReply> #include <QNetworkRequest> #include <QUrl> #include <QTimer> #include <QNetworkAccessManager> #include <QEventLoop> #include <QTime> #include <QDebug> #include <QVector> #include <windows.h>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QNetworkAccessManager *manager = new QNetworkAccessManager;QNetworkRequest *request = new QNetworkRequest;QString urlStr = "https://XXXXXXXX/XXXXXXXX/phoenix/comment/submit?id=";QString refererUrlStr = "https://XXXXXXXX/XXXXXXX/article/details/";qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));QVector<int> keyIdVec;//讀文件QFile file("D:\\papapa\\keyContent.txt");if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << "keyContent.txt 這文件有毒!快跑";delete manager;delete request;return 0;}while(!file.atEnd()){QString line = file.readLine();keyIdVec.append(line.remove("\n").toInt());}file.close();for(int i = 0; i < keyIdVec.size();){QString tempUrlStr = urlStr + QString::number(keyIdVec[i]);QString tempReferer = refererUrlStr + QString::number(keyIdVec[i]);QSslConfiguration config;QSslConfiguration conf = request->sslConfiguration();conf.setPeerVerifyMode(QSslSocket::VerifyNone);conf.setProtocol(QSsl::TlsV1SslV3);request->setSslConfiguration(conf);request->setUrl(QUrl(tempUrlStr));request->setRawHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0");request->setRawHeader("Accept", "*/*");request->setRawHeader("Accept-Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");request->setRawHeader("Accept-Encoding", "gzip, deflate, br");request->setRawHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");request->setRawHeader("X-Requested-With", "XMLHttpRequest");request->setRawHeader("Referer", tempReferer.toUtf8());request->setRawHeader("Cookie", "XXXXXXXXXXXX");request->setRawHeader("Connection", "keep-alive");QNetworkReply *reply = manager->post(*request, QString("replyId=&content=%e5%88%ab%e4%ba%ba%e5%ae%b6%e7%9a%84xxx%e4%bb%8e%e6%9d%a5%e6%b2%a1%e8%ae%a9%e6%88%91%e5%a4%b1%e6%9c%9b%e8%bf%87").toUtf8());QEventLoop loop;QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));loop.exec();qDebug() << "over! The size is " << reply->size();if(reply->size() >= 200){qDebug() << "content: " << QString::fromUtf8(reply->readAll());int num=qrand()%1000 * 60 + 1000 * 60 * 3;delete request;delete manager;request = new QNetworkRequest;manager = new QNetworkAccessManager;qDebug() << "sleep time: " << num;Sleep(num);}else{i++;}Sleep(qrand()%1000 * 60 + 1000 * 60);}delete request;delete manager;return a.exec(); }

這里要注意源碼中的KeyContent.txt是用Qt5獲取的博文ID

以前寫過Qt5爬的博文ID,在此不再重復說明,

如何去自動更新Cookie,這里給出一個提示,可以通過QWebView或QWebEngine去實現,這樣做簡單點,但每獲取一次,需要時間的。

總結

以上是生活随笔為你收集整理的HTTP|Qt实践-Qt编写某平台刷评论软件(含代码与思路)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。