• 新华字典数据获取方法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模块,正则一出谁与争锋的感觉就是这样。

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

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

  • 相关阅读:
    SCOI2007 组队
    ZJOI2008 生日聚会
    织梦标签截取指定数目字符
    HTML特殊符号对照表
    DedeCMS让{dede:list}标签支持weight权重排序
    PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空,DeDeCMS在PHP5.4下编辑器中文不显示问题
    把图文内容载入微应用中
    织梦安装错误
    dedecms创建或修改目录失败
    安装phpmyadmin
  • 原文地址:https://www.cnblogs.com/superstargg/p/4460471.html
Copyright © 2020-2023  润新知