PROXY 접속 추가
git-svn-id: svn://192.168.0.12/source@18 8346c931-da38-4b9b-9d4c-e48b93cbd075
This commit is contained in:
@@ -3,11 +3,14 @@
|
||||
#include <QCoreApplication>
|
||||
#include <iostream>
|
||||
#include <QSqlDatabase>
|
||||
#include <QNetworkProxy>
|
||||
#include <time.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
srand(time(0));
|
||||
QApplication a(argc, argv);
|
||||
a.setApplicationName(QString("Chrome"));
|
||||
a.setApplicationVersion(QString("39.0.2171.95"));
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
struct SProxyList
|
||||
{
|
||||
QString m_strAddress;
|
||||
int m_nPort;
|
||||
};
|
||||
|
||||
SCrawler::SCrawler():QObject()
|
||||
{
|
||||
m_page = new QWebPage;
|
||||
@@ -28,6 +34,33 @@ void SCrawler::load(QStringList _strlistArgv)
|
||||
m_strUrl = _strlistArgv[2];
|
||||
m_nSelect = E_NAVER_CAFE_LIST;
|
||||
m_strKeywordID = _strlistArgv[4];
|
||||
|
||||
QFile file("proxy.txt");
|
||||
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
|
||||
{
|
||||
QVector <QStringList> vecProxy;
|
||||
while (!file.atEnd())
|
||||
{
|
||||
QString str = QString(file.readLine());
|
||||
if (str.isEmpty()) continue;
|
||||
vecProxy.push_back(str.split(","));
|
||||
}
|
||||
if (vecProxy.size() > 0)
|
||||
{
|
||||
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() << endl;
|
||||
QNetworkProxy::setApplicationProxy(*(new QNetworkProxy(QNetworkProxy::HttpProxy,strList.at(0),strList.at(1).toInt())));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_strlistArgv[1] == "cafe_data")
|
||||
@@ -69,10 +102,14 @@ void SCrawler::load(QStringList _strlistArgv)
|
||||
m_page->settings()->setAttribute(QWebSettings::AutoLoadImages,false);
|
||||
QNetworkRequest *request = new QNetworkRequest;
|
||||
request->setUrl(url);
|
||||
request->setRawHeader("Cache-Control","max-age=0");
|
||||
/*
|
||||
request->setRawHeader("Cache-Control","max-age=0, no-cache");
|
||||
request->setRawHeader("Pragma","no-cache");
|
||||
request->setRawHeader("Expires","Thu, 01 Jan 1970 16:00:00 GMT");
|
||||
*/
|
||||
if (m_strReper.isEmpty() == false && m_nSelect == E_NAVER_CAFE_DATA)
|
||||
request->setRawHeader("Referer",m_strReper.toLocal8Bit());
|
||||
request->setRawHeader("Accept-Language","ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2,zh;q=0.2");
|
||||
request->setRawHeader("Accept-Language","ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4,zh-CN;q=0.2,zh;q=0.2");
|
||||
m_page->mainFrame()->load(*request);
|
||||
m_bLast = false;
|
||||
m_bError = false;
|
||||
@@ -115,7 +152,7 @@ void SCrawler::saveResult(bool ok)
|
||||
{
|
||||
case E_NAVER_CAFE_LIST:
|
||||
case E_NAVER_BLOG_LIST:
|
||||
if (m_bError) cout << "last";// block
|
||||
if (m_bError) cout << "block";// block
|
||||
if (m_bLast) cout << "last";
|
||||
break;
|
||||
case E_NAVER_BLOG_REPLY:
|
||||
@@ -259,8 +296,10 @@ enum E_DATA
|
||||
|
||||
void SCrawler::saveFrameUrl(QWebFrame *frame)
|
||||
{
|
||||
//static int cz = 0;
|
||||
//Debug(frame->frameName() + QString::number(cz++) + ".html",frame->toHtml());
|
||||
/*
|
||||
static int cz = 0;
|
||||
Debug(frame->frameName() + QString::number(cz++) + ".html",frame->toHtml());
|
||||
*/
|
||||
|
||||
QSqlQuery sql;
|
||||
if (frame->frameName().compare(QString("BuddyConnectIframe")) == 0)
|
||||
@@ -477,6 +516,10 @@ void SCrawler::saveFrameComment(QWebFrame *frame)
|
||||
void SCrawler::saveFrameCafeList(QWebFrame *frame)
|
||||
{
|
||||
if (m_bUse == true) return;
|
||||
|
||||
static int cz = 0;
|
||||
Debug(frame->frameName() + QString::number(cz++) + ".html",frame->toHtml());
|
||||
|
||||
QWebElement eleMain = Find(frame->documentElement(),"div","class","cafe_article section _cafeBase");
|
||||
foreach(QWebElement eleSub,eleMain.findAll("li"))
|
||||
{
|
||||
@@ -531,7 +574,7 @@ void SCrawler::saveFrameCafeList(QWebFrame *frame)
|
||||
|
||||
void SCrawler::saveFrameCafeUrl(QWebFrame *frame)
|
||||
{
|
||||
if (m_bUse) return;
|
||||
if (m_bUse) return;
|
||||
|
||||
QWebElement other = Find(frame->documentElement(),"h1","class","d-none");
|
||||
if (other.toPlainText().isEmpty() == false)
|
||||
|
||||
Reference in New Issue
Block a user