• 新华字典数据获取方法2


    这种方法是使用C++来进行获取的。

    主要原理:新华字典网站数据采集,使用Qt的网络模块进行处理。

    准备:

    网站:http://xh.5156edu.com/pinyi.html

    工具:Qt5.4.1

    核心部分源码:

     1 bool QMyNetwork::GetHtmlContent1(const QString &fHtmlUrl)
     2 {
     3 
     4 #ifdef _DEBUG
     5     qDebug() << "Start::GetHtmlContent1 >> " << QTime::currentTime().toString("HH:mm:ss:zzz");
     6 #endif //_DEBUG
     7 
     8     QNetworkAccessManager *lpManager = new QNetworkAccessManager(this);
     9     QNetworkReply *lpReply = lpManager->get(QNetworkRequest(QUrl(fHtmlUrl)));
    10     QEventLoop _Loop;
    11     connect(lpManager, SIGNAL(finished(QNetworkReply*)), &_Loop, SLOT(quit()));
    12     _Loop.exec();       //block until finish
    13 
    14     /////////////////////TESTING START/////////////////////////////////////////////
    15 
    16 //    QByteArray l_test_1 = lpReply->readAll();
    17 
    18     /////////////////////TESTING END///////////////////////////////////////////////
    19 
    20     mHtmlContent1 = QString::fromLocal8Bit(lpReply->readAll());
    21     if (mHtmlContent1.size() == 0) return false;
    22 
    23 //    this->PrintfContent1();
    24 
    25 #ifdef _DEBUG
    26     qDebug() << "End::GetHtmlContent1 >> " << QTime::currentTime().toString("HH:mm:ss:zzz");
    27 #endif //_DEBUG
    28 
    29     return true;
    30 }

    剩下的部分基本是对字符串的处理,有人会有疑问,C++字符串处理能力强吗,以前我不敢肯定,现在我确信强,因为Qt里面引用了QRegExp模块,正则一出谁与争锋的感觉就是这样。

    感兴趣的可以看看新华字典的获取源码,这里,提供下载完整源码。

    *注:看似字符串处理繁琐,但是熟练之后却也是一番收获,因为字符串处理是程序中必要的一个环节。

  • 相关阅读:
    高精度计算
    c++ sort
    算法分类小结
    二叉树层序遍历
    clion windows c++环境配置 mingw
    kafka,filebeat 配置
    centos7 源码安装mysql5.7
    如何优雅的生成及遍历python嵌套字典
    Java Swing 绝对布局管理方法,null布局【图】
    python3.4+pymssql 中文乱码问题解决
  • 原文地址:https://www.cnblogs.com/superstargg/p/4460471.html
Copyright © 2020-2023  润新知