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

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

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

  • 相关阅读:
    Chrome下载无后缀问题
    duilib程序HelloWorld
    go的windows下的安装包
    ASP.NET MVC异步上传图片和富文本编辑器的使用详解
    搭建go环境(windows和linux)
    构建离线Go编程指南——gotour
    判定模块加载时是否存在循环依赖
    Winform开发框架之框架演化
    为什么要写技术博
    JTREE使用例子—创建一个客户端界面
  • 原文地址:https://www.cnblogs.com/superstargg/p/4460471.html
Copyright © 2011-2022 走看看