paip.c++ qt 网页爬虫 的 网络编程 总结
paip.c++ qt 网页爬虫 的 网络编程 总结
作者Attilax , EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
1.项目添加网络模块。
--------------
工程名为“http”,然后选中QtNetwork模块,最后Base class选择QWidget 。注意:如果新建工程时没有添加Qt Network模块,那么就要手动在工程文件.pro中添加代码
QT += network
表明我们使用了网络模块。
2.添加net类:必须幺继承QObject.贝儿.不能关联事件..好像也能直接写的个头文件黑头了..
-----------
---atiNet.h--------
#ifndef ATINET_H
#define ATINET_H
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QtCore>
#include <iostream>
using namespace std ;
class atiNet : public QObject
{
Q_OBJECT
public:
explicit atiNet();
static QString getHtml(QString url);
signals:
public slots:
};
#endif // ATINET_H
---atinet.cpp-------
#include "atinet.h"
atiNet::atiNet()
{
}
QString atiNet::getHtml(QString url)
{
QNetworkAccessManager *manager = new QNetworkAccessManager();
QNetworkReply *reply = manager->get(QNetworkRequest(QUrl(url)));
QByteArray responseData;
QEventLoop eventLoop;
connect(manager, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
eventLoop.exec(); //block until finish
responseData = reply->readAll();
return QString(responseData);
}
3.调用:
------------
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//
QString url="http://www.oschina.net/code/snippet_28714_18932";
QString html= atiNet::getHtml(url);
qDebug() <<html;
// printf(html);
return a.exec();
}
补充:软件开发 , C++ ,