#include "widget.h"
#include "ui_widget.h"
#include "fervor/fvupdater.h"
#if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
#else
#define QStringLiteral(str) QString::fromUtf8(str)
#endif
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget),m_View(NULL),
isFirstBe(false),
m_ARK(NULL),
m_BEH(NULL),
m_COMB(NULL),
m_OAK(NULL)
{
ui->setupUi(this);
#if defined(Q_OS_WIN)
setWindowFlags(Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
#endif
#if defined(Q_OS_OSX)
ui->closeBtn->setVisible(false);
#endif
//初始化为未按下鼠标左键
mouse_press = false;
arkIsOK = false;
behIsOk = false;
comBlOk = false;
oakOK = false;
aokOK = false;
connect(ui->updateButton, SIGNAL(clicked()),
FvUpdater::sharedUpdater(), SLOT(CheckForUpdatesNotSilent()));
m_View =new QWebView();
QStringList lst;
initThreeThreads();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("acidalia");
db.setDatabaseName("bigarkdb");
db.setUserName("sarah");
db.setPassword("123456tb");
bool ok = db.open();
qDebug()<<" opened? "<<ok;
connect(ui->comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(setCurrentCas(QString)));
QSqlQuery query("SELECT cas FROM arkdata order by id limit 200");
while (query.next()) {
QString country = query.value(0).toString();
lst.append(country);
}
ui->comboBox->addItems(lst);
}
Widget::~Widget()
{
if(m_View){
m_View->deleteLater();
m_View = NULL;
}
delete ui;
}
void Widget::initThreeThreads()
{
m_ARK = new BiJiaARKThread(0);
connect(m_ARK,SIGNAL(signalSendFinalData(QByteArray)),this,SLOT(parseArk(QByteArray)));
m_BEH = new BiJiaBehThread(0);
connect(m_BEH,SIGNAL(signalSendFinalData(QByteArray,bool)),this,SLOT(parseBeh(QByteArray,bool)));
connect(m_BEH,SIGNAL(signalMessageShow(QString)),this,SLOT(appendStatus(QString)));
m_COMB = new BiJiaCOMBThread(0);
connect(m_COMB,SIGNAL(signalSendFinalData(QByteArray,bool)),this,SLOT(parseComBlock(QByteArray,bool)));
m_OAK = new BiJiaOAKThread(0);
connect(m_OAK,SIGNAL(signalSendFinalData(QByteArray,bool)),this,SLOT(parseOAkChemical(QByteArray,bool)));
connect(m_OAK,SIGNAL(signalMessageShow(QString)),this,SLOT(appendStatus(QString)));
m_AOK = new BiJiaAOKThread(0);
connect(m_AOK,SIGNAL(signalSendFinalData(QByteArray)),this,SLOT(parseAoK(QByteArray)));
m_Astatech = new BiJiaAstatechThread(0);
connect(m_Astatech,SIGNAL(signalSendFinalData(QByteArray,bool)),this,SLOT(parseAstatech(QByteArray,bool)));
connect(m_Astatech,SIGNAL(signalMessageShow(QString)),this,SLOT(appendStatus(QString)));
}
void Widget::setUrl(const QUrl &url)
{
m_View->setUrl(url);
}
void Widget::setWebSiteType(Widget::WEBSITE_TYPE type)
{
iType = type;
}
void Widget::startLoad(const QUrl &url)
{
qDebug()<<" startLoad "<<url;
}
void Widget::startPost(const QUrl &url)
{
QByteArray content(ui->lineEdit->text().toUtf8());
int contentLength = content.length();
QNetworkRequest req;
req.setUrl(QUrl(url));
req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
req.setHeader(QNetworkRequest::ContentLengthHeader,contentLength);
// manager->post(req,content);
}
void Widget::parseArk(const QByteArray &arr)
{
QWebFrame *frame =m_View->page()->mainFrame();
frame->setHtml((arr));
QWebElement document = frame->documentElement();
QWebElementCollection introSpans = document.findAll("input[type=hidden]");
QList<QWebElement> elst = introSpans.toList();
ui->textEdit->clear();
for(int i = 0;i<elst.count();i++){
QString value = elst.at(i).attribute("value");
QString id = elst.at(i).attribute("id");
//qDebug()<<"-------------ARKPHARM data--------------- "<<value<< " \n"<<id;
if(id.contains("Hidden") || id.contains("WeightValue") || value.isEmpty()){
continue;
}
ui->textEdit->append(value);
}
if(elst.isEmpty()){
ui->textEdit->append(QStringLiteral("未找到相关产品"));
}
arkIsOK = true;
qDebug()<<QStringLiteral("ARK价格获取完毕--------------------------------");
if(arkIsOK && behIsOk && comBlOk && oakOK && aokOK && astateChOK){
ui->pushButton->setEnabled(true);
ui->label_5->setText(QStringLiteral("ARK最后搜索完成,请仔细查看搜索结果"));
}
}
void Widget::parseBeh(const QByteArray &arr, bool isFirst)
{
QWebFrame *frame =m_View->page()->mainFrame();
frame->setHtml(arr);
QWebElement document = frame->documentElement();
if(isFirst){
ui->textEdit_2->clear();
examineChildElements(document,true);
}else{
QWebElementCollection introSpans = document.findAll("input[type=hidden]");
QList<QWebElement> elst = introSpans.toList();
QStringList secondResult;
secondResult.clear();
for(int i = 0;i<elst.count();i++){
QString value = elst.at(i).attribute("value");
QString id = elst.at(i).attribute("id");
//qDebug()<<"-------------BEPHARM data--------------- "<<value<< " \n"<<id;
if(id.isEmpty() || value.isEmpty() || id.contains("WeightValue")){
continue;
}else{
// ui->textEdit_2->append(tr("未找到该产品价格"));
// ui->label_5->setText(tr("未找到该产品价格"));
ui->textEdit_2->append(value);
}
}
behIsOk = true;
qDebug()<<QStringLiteral("BEHM价格获取完毕--------------------------------");
if(arkIsOK && behIsOk && comBlOk && oakOK && aokOK && astateChOK){
ui->pushButton->setEnabled(true);
ui->label_5->setText(QStringLiteral("BEHM最后搜索完成,请仔细查看搜索结果"));
}
}
}
void Widget::parseComBlock(const QByteArray &arr, bool isFirst)
{
// qDebug()<<"parseComBlock "<<arr.size();
// ui->textEdit_3->setText(QStringLiteral(arr));
QWebFrame *frame =m_View->page()->mainFrame();
frame->setHtml((arr));
QWebElement document = frame->documentElement();
QWebElementCollection introSpans = document.findAll("TD[ALIGN=right]");
QList<QWebElement> elst = introSpans.toList();
ui->textEdit_3->clear();
for(int i = 0;i<elst.count();i++){
QString value = elst.at(i).toInnerXml();
if(value.contains("<input") || value.isEmpty() || value.contains("Others")){
continue;
}
ui->textEdit_3->append(elst.at(i).toInnerXml());
}
if(elst.isEmpty()){
ui->textEdit_3->append(QStringLiteral("未找到相关产品"));
}
qDebug()<<QStringLiteral("COMBLOCKS价格获取完毕--------------------------------");
comBlOk = true;
if(arkIsOK && behIsOk && comBlOk && oakOK && aokOK && astateChOK){
ui->pushButton->setEnabled(true);
ui->label_5->setText(QStringLiteral("COM最后搜索完成,请仔细查看搜索结果"));
}
}
void Widget::parseOAkChemical(const QByteArray &arr, bool isFirst)
{
QWebFrame *frame =m_View->page()->mainFrame();
frame->setHtml((arr));
QWebElement document = frame->documentElement();
if(isFirst){
ui->textEdit_4->clear();
examineChildElements(document,false);
}else{
QWebElementCollection introSpans = document.findAll("input[type=hidden]");
QList<QWebElement> elst = introSpans.toList();
QStringList secondResult;
secondResult.clear();
for(int i = 0;i<elst.count();i++){
QString value = elst.at(i).attr
没有合适的资源?快使用搜索试试~ 我知道了~
基于Qt开发的爬虫工具.zip
共99个文件
cpp:24个
h:22个
png:18个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 164 浏览量
2024-04-26
17:03:05
上传
评论
收藏 1MB ZIP 举报
温馨提示
基于QT的系统
资源推荐
资源详情
资源评论
收起资源包目录
基于Qt开发的爬虫工具.zip (99个子文件)
BiJiaSpider-master
fvignoredversions.o 264KB
close_hover.png 1KB
widget.ui 12KB
bjsystem_tray.cpp 2KB
BiJiaTools.rc 1KB
bijiaaokthread.cpp 2KB
fvupdatewindow.o 766KB
down.png 809B
widget.cpp 17KB
bjmainwidget.cpp 3KB
bjsystem_tray.h 1KB
download.png 3KB
bijiacombthread.cpp 5KB
fvupdater.o 782KB
bijiaarkthread.h 927B
bjwidget.h 3KB
fvversioncomparator.o 69KB
bijia.qss 3KB
updater.png 2KB
logo.png 2KB
chat
resource.qrc 378B
chat.ui 12KB
bjchatwidget.ui 15KB
tcpclient.ui 2KB
tcpserver.ui 2KB
image
textitalic.png 1KB
Bin (empty).png 1KB
fileopen.png 1KB
textbold.png 1KB
Files.png 3KB
textunder.png 924B
E-Mail.png 16KB
textcolor.png 2KB
Floppy.png 2KB
User.png 2KB
MSN-Messenger.png 22KB
tcpserver.cpp 4KB
chat.h 2KB
bjchatwidget.cpp 14KB
bjchatwidget.h 2KB
tcpserver.h 1007B
main.cpp 178B
tcpclient.h 1009B
icon.rc 47B
chat.pri 655B
tcpclient.cpp 3KB
chat.cpp 12KB
bjmainwidget.h 838B
bijiaarkthread.cpp 2KB
BiJiaTools.pro 1KB
bjmain.qss 2KB
close_pressed.png 1KB
bijiaaokthread.h 898B
main.cpp 790B
bijiaastatechthread.h 1KB
BiJiaCOMBThread.h 1KB
bjwidget.cpp 17KB
bjstackedwidget.h 445B
bijiaupdate.qss 2KB
fvupdateconfirmdialog.o 624KB
bjwidget.ui 10KB
bijiaoakthread.cpp 2KB
up.png 764B
bijiaoakthread.h 1005B
bijia.qrc 388B
bjstackedwidget.cpp 477B
bjstackedwidget.ui 560B
fvplatform.o 253KB
bijiabehthread.cpp 3KB
fvavailableupdate.o 169KB
bjmainwidget.ui 413B
fervor
fervor_lt.qm 3KB
fvversioncomparator.cpp 4KB
fvplatform.h 260B
fvplatform.cpp 3KB
README.mdown 9KB
LICENSE 1KB
fvupdateconfirmdialog.ui 2KB
fvavailableupdate.cpp 2KB
fvversioncomparator.h 612B
fvavailableupdate.h 1KB
fvupdateconfirmdialog.h 503B
fvupdatewindow.h 503B
fvupdateconfirmdialog.cpp 1KB
fvupdatewindow.ui 3KB
update.xml 2KB
fervor_lt.ts 5KB
fvupdateconfig.h.sample 273B
fvupdatewindow.cpp 2KB
fvignoredversions.cpp 2KB
fvupdater.cpp 15KB
fvignoredversions.h 329B
Fervor.pri 1KB
fvupdater.h 4KB
bijiaastatechthread.cpp 3KB
bijiabehthread.h 1003B
logo.ico 66KB
widget.h 3KB
BiJiaTools.pro.user 18KB
共 99 条
- 1
资源评论
我慢慢地也过来了
- 粉丝: 7673
- 资源: 4012
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功