首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt怎么获取网页的源文件

2013-02-04 
Qt如何获取网页的源文件本帖最后由 yiyaaixuexi 于 2011-10-09 13:07:09 编辑还是假期前的项目,现在想读取

Qt如何获取网页的源文件
本帖最后由 yiyaaixuexi 于 2011-10-09 13:07:09 编辑 还是假期前的项目,现在想读取网页上的数据,通过右键菜单查看源文件这一选项,看了看网页的源文件,数据格式很好读取,就是现在不知道该如何通过QT来得到网页的源文件,如果用QNetwork相关的类能否得到?还有就是能下载下来最好,知道如何实现的说一下,小长假回来第一天,多挂点分

补充一点,能否把网页的源文件下载保存成XML文件,方便数据的读取
[解决办法]
用QHTTP.把网页下载下来.再用正则解析.
[解决办法]

引用:
引用:
我就用QT写了一个工具.其中就用到啦 采集网页数据的.

貌似不错,详细说一下呗

Qt自带的例子中不就有通过http获取文件的例子么??

题外:QHttp就不要再考虑了,已经不建议使用了。如果要用QtNetWork模块就用 QNetworkAccessManager
[解决办法]
http://jybox.net/bbs/read.php?tid-127.html

这里,我写的文章
[解决办法]
我刚好做过类似的,参考下这个
http://blog.csdn.net/qianguozheng/article/details/6776353
做成动态链接库,在qt中调用,可以曲线实现你要的效果
http://blog.csdn.net/qianguozheng/article/details/6786505

[解决办法]
引用:
引用:
http://jybox.net/bbs/read.php?tid-127.html

这里,我写的文章


为什么我运行你的代码是这样效果的

还有我这总是有这样的提示
C/C++ code
QFSFileEngine::open: No file name specified
QFSFileEngine::open: No file n……

还要显示?这样的话,你应该考虑去用 QtWebKit,而不是直接使用 QtNetWork 模块。尽管http协议本身非常简单,但是对获取的内容解析(在获取各个文件)并显示出网页,不是简单就能完成的。(世界范围内,浏览器引擎就那么屈指可数的几个,不是么?像腾讯、搜狐、360这些大公司,都借用别人引擎。)
[解决办法]
引用:
最终是不需要显示的,现在只是一步步的来,想看看能不能达到想要得效果,最终是想把网页下载下来,然后对网页进行解析,提取想要的数据,然后用ListWidget显示,后面都好说,现在就是卡在网页处理这块了,对网络真的不懂,要是下载下来是下载成html什么的还是别的格式?还就是怎么下载

你不是已经下载下来一个了么?或者你可以去看看http协议(如果你真感兴趣的话),全文也没多长,就是使英文的。
[解决办法]
亲,用QWebPage,解压编码全帮你搞定了。
[解决办法]
说错鸟,是QWebFrame,
[解决办法]
引用:
引用:
http://jybox.net/bbs/read.php?tid-127.html

这里,我写的文章


为什么我运行你的代码是这样效果的

还有我这总是有这样的提示
C/C++ code
QFSFileEngine::open: No file name specified
QFSFileEngine::open: No file n……


void Widget::ReadyRead()
{
    ui->tB->setText(QString::fromUtf8( reply->readAll()));
}

事实上,这里的QString::fromUtf8( reply->readAll())就已经是字符串格式的网页源文件了,至于为什么显示成那样..那是那个控件的问题(那个控件会把html重新还原成网页)....也不知是我写错了控件名,还是你拖错了

接下来你只需要把这QString::fromUtf8( reply->readAll())写入到文件就达到你的目的了,下面是一段写入文件的代码:

#include <QString>
#include <QTextCodec>
#include <QFile>
#include <QTextStream>
//---------------
QFile file(QString("1.txt"));
        if(file.open(QIODevice::WriteOnly))
        {
            QTextStream stream(&file);
            QString str=QString::fromUtf8( reply->readAll());


            stream<<str;
            file.close();
        }



大概是这样......手头没编译器,没试验

ps.....为了为消灭IE6尽一份力量,本人博客+论坛禁止IE6访问
[解决办法]
你关注下爬虫程序 可以实现

热点排行