From ee1222c8231da7b2f702e6dfc674c75f252c3864 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 3 Jun 2015 01:51:31 +0000 Subject: [PATCH] =?UTF-8?q?=EC=83=81=ED=83=9C=20=EB=B3=B4=EA=B8=B0=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://192.168.0.12/source@137 8346c931-da38-4b9b-9d4c-e48b93cbd075 --- CrawlerProcess/scrawler.cpp | 27 +++++++++++++++++++-------- CrawlerProcess/scrawler.h | 8 +++++--- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/CrawlerProcess/scrawler.cpp b/CrawlerProcess/scrawler.cpp index f29066d..c62c1c8 100644 --- a/CrawlerProcess/scrawler.cpp +++ b/CrawlerProcess/scrawler.cpp @@ -154,7 +154,8 @@ void SCrawler::saveResult(bool ok) { if (!ok) { - std::cerr << "Failed loading";// << qPrintable(m_page->mainFrame()->url().toString());// << std::endl; + cout << "Failed loading";// << qPrintable(m_page->mainFrame()->url().toString());// << std::endl; + deleteProxy(); emit finished(); return; } @@ -202,6 +203,7 @@ void SCrawler::saveResult(bool ok) if (m_bError) { cout << "block";// block + deleteProxy(); break; } @@ -1642,17 +1644,16 @@ void SCrawler::setProxy() { QStringList strList = vecProxy.at(rand()%vecProxy.size()); switch(strList.size()) - { + { case 1: cout << "p : " << strList.at(0).toStdString() << endl; - QNetworkProxy::setApplicationProxy(*(new QNetworkProxy(QNetworkProxy::HttpProxy,strList.at(0)))); - break; - case 2: - //cout << "p : " << strList.at(0).toStdString() << ", " << strList.at(1).toStdString() << endl; - cout << "p : " << strList.at(0).toStdString() << endl; - + break; + case 2: + cout << "p : " << strList.at(0).toStdString() << ":" << strList.at(1).toStdString() << endl; QNetworkProxy::setApplicationProxy(*(new QNetworkProxy(QNetworkProxy::HttpProxy,strList.at(0),strList.at(1).toInt()))); + m_strProxyIP = strList.at(0); + m_nProxyPort = strList.at(1).toInt(); //QNetworkProxy::setApplicationProxy(*(new QNetworkProxy(QNetworkProxy::HttpProxy,"196.201.216.172",8088))); break; } @@ -1717,3 +1718,13 @@ void SCrawler::setProxy() } } } + +void SCrawler::deleteProxy() +{ + if (m_strProxyIP.isEmpty()) return; + QSqlQuery sqlquery; + QString strquery = "delete from Proxy where proxy = '" + m_strProxyIP + "' and port = " + QString::number(m_nProxyPort); + if(sqlquery.exec(strquery.toUtf8()) == false) + cout << "Error : " << strquery.toStdString() << endl; +} + diff --git a/CrawlerProcess/scrawler.h b/CrawlerProcess/scrawler.h index e140308..6e560ef 100644 --- a/CrawlerProcess/scrawler.h +++ b/CrawlerProcess/scrawler.h @@ -31,8 +31,7 @@ signals: private slots: void saveResult(bool ok); private: - int m_nSelect; - //QString m_strTableReply; + int m_nSelect; QString m_strReper; QString m_strKeywordID; @@ -47,6 +46,9 @@ private: bool m_bLast; bool m_bError; + QString m_strProxyIP; + int m_nProxyPort; + QString SqlString(QString _str); QString GetSafeUtf(QString _strData); void saveFrameList(QWebFrame *frame); @@ -62,7 +64,7 @@ private: int GetNumber(QString _str); bool getProxyList(QString &_str); void setProxy(); - + void deleteProxy(); QWebElement Find(const QWebElement _FindElement,const QString _strElement,const QString _strAttrib,const QString _strFind); QWebElement FindMid(const QWebElement _FindElement,const QString _strElement,const QString _strAttrib,const QString _strFind, const int _strStart, const int _strLength);