永发信息网

QT打开一个网页,并获取网页内容,该怎么处理

答案:4  悬赏:0  手机版
解决时间 2021-03-16 22:31
  • 提问者网友:感性作祟
  • 2021-03-16 14:54
QT打开一个网页,并获取网页内容,该怎么处理
最佳答案
  • 五星知识达人网友:英雄的欲望
  • 2021-03-16 15:08
获取内页内容最直接的办法就是选择要复制的内容,右击鼠标复制,或者CTRL+C复制,ctrl+v粘贴即可。

对于此方法无法复制的网页内容可以通过在浏览器右上角的工具-查看源代码,



把该文字的第一句用CTRL+F查找这段文字,

把记住你要复制文字的开头和结尾,选择后网页文字和代码一起复制,

再通过一个HTML编程器进行转换,像这里就是HTML的编辑器,或者在网站后台发布文章的位置点击源码,



这时候其他图标都变成灰色。

复制刚刚的文字,然后再粘贴,

这时候有代码,请再点击一下源码,切换回来刚刚的状态

文字变成正常网页显示的内容,再复制粘贴即可。

全部回答
  • 1楼网友:往事隔山水
  • 2021-03-16 16:42
这个,可以看看
源码
  • 2楼网友:往事埋风中
  • 2021-03-16 16:05

获取网页源码的小例子,代码很简单,就不多作解释了。

不过一定要注意网页的编码问题,否则会出现乱码的!!!

[cpp] view plain copy print?
#include       
#include       
    
//网页地址      
const QString URLSTR = "http://www.csdn.net/";      
//储存网页代码的文件      
const QString FILE_NAME = "code.html";      
    
int main(int argc, char **argv)      
{      
    QCoreApplication app(argc, argv);      
    QUrl url(URLSTR);      
    QNetworkAccessManager manager;      
    QEventLoop loop;      
    QTextCodec *codec;    
    QNetworkReply *reply;    
    
    qDebug() << "Reading html code form " << URLSTR;      
    reply = manager.get(QNetworkRequest(url));      
    //请求结束并下载完成后,退出子事件循环      
    QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));      
    //开启子事件循环      
    loop.exec();      
    
    //获取源码,打开文件  
    QFile file(FILE_NAME);    
    if( !file.open(QIODevice::WriteOnly | QIODevice::Text) )  
    {  
        qDebug() << "Cannot open the file: " << FILE_NAME;  
        return 0;  
    }  
    QTextStream out(&file);    
    QString codeContent = reply->readAll();    
  
    //将获取到的网页源码写入文件  
    //一定要注意编码问题,否则很容易出现乱码的  
    codec = QTextCodec::codecForHtml(codeContent.toAscii());    
    codeContent = codec->toUnicode(codeContent.toAscii());    
    out.setCodec(codec);  
    out << codeContent << endl;    
    file.close();    
    qDebug() << "Finished, the code have written to " << FILE_NAME;      
    return 0;      
}
  • 3楼网友:执傲
  • 2021-03-16 16:00

是从网页上获取内容吗?是获取全部还是获取指定数据?

获取全部的话用网络编程的IO估计就可以处理,获取指定数据的话我只用过jsoup。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯