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模块,正则一出谁与争锋的感觉就是这样。

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

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

  • 相关阅读:
    C#深入浅出 修饰符(二)
    HDU 5785 Interesting
    HDU 5783 Divide the Sequence
    HDU 5781 ATM Mechine
    UVA 714 Copying Books
    uva 1471 Defense Lines
    UVA 11134 Fabled Rooks
    UVA 11572 Unique Snowflakes
    UVA 11093 Just Finish it up
    UVA 10954 Add All
  • 原文地址:https://www.cnblogs.com/superstargg/p/4460471.html
Copyright © 2011-2022 走看看