最近花了挺多时间将网易云音乐评论爬虫用c++重写打包成app形式,话不多说,正片开始,上2节中我们分析了下网易云音乐的抓包解密过程和AES加密,无非2次AES加密,接下来我们用c++来实现,我们先来看布局UI文件,首先账号密码登录,和上几节一样,接下来就是爬虫界面了,如下所示登录后,输入音乐id,点击开始采集即执行爬虫代码,然后采集完数据后点击导出excel即可实现保存数据。代码上次分析过了,这里就不在写了,说下数据接收部分的代码,如下所示
void MainWindow::getData(QNetworkReply *reply, QString &str_num,MainWindow *mw,QList<QStringList> &data)
{
// 以二进制形式读取响应数据
qDebug()<<"请求成功了!";
QByteArray endDatas = reply->readAll();
qDebug()<<endDatas;
QJsonDocument responseDocument = QJsonDocument::fromJson(endDatas);
QJsonObject responseObject = responseDocument.object();
QJsonArray jsonArray = responseObject.value("data").toObject().value("comments").toArray();
//获取13位时间戳
long long num = jsonArray.last().toObject().value("time").toVariant().toLongLong();
str_num = QString::number(num);
qDebug()<<"第"<<"1次的时间戳位:"<<str_num;
for(int i=0;i<jsonArray.size();i++)
{
//提取评论内容
QString value = jsonArray.at(i).toObject().value("content").toString().replace("\n","");
qDebug()<<value;
QStringList record1;
record1 << value;
data.append(record1);
mw->ui->textEdit->append(value);
mw->ui->textEdit->textCursor();
}
qDebug()<<"时间戳为:"<<str_num;
reply->deleteLater();
}
主要widget.cpp代码如下所示接下来开始设置app的名字和图标ui了,这里参考的大佬嵌入式_小新 的博客,在项目目录下新建一个android-sources文件夹,如图所示
将android-bulid文件夹中的AndroidManifest.xml文件复制到android-sources中,注意这个文件是你调试运行项目生成的。除此之外,android-build文件夹路径是在build-项目名这个文件夹中,如图所示,这是我的
然后右键qtcreator中的项目名,选中添加现有文件,将android-sources里面的文件选上即可,还有这里我要给我的app弄一个icon图标,你的图标必须是png格式,然后和AndroidManifest.xml文件同一个目录,和上面AndroidManifest.xml文件添加步骤一样。如图所示
然后点击AndroidManifest.xml文件,如图所示设置
然后点击构建,就可以下载app到手机了,我写的app你们可以体验下,https://lyptestpython.oss-cn-hangzhou.aliyuncs.com/QtApp-debug.apk
如果上述代码帮助您很多,可以打赏下以减少服务器的开支吗,万分感谢!


点击此处登录后即可评论