C/C++ | Qt 实现爬虫功能,爬取CSDN博客文章
发布日期:2021-06-30 10:51:48 浏览次数:2 分类:技术文章

本文共 1910 字,大约阅读时间需要 6 分钟。

话不多说,先看程序运行截图:

注意:

 本人没有看过爬虫相关的书籍,第一次写这种程序,这个程序是半屌子的,原理很简单,没有学习过爬虫的朋友,也可以写。

程序思路如下:

1.下载要爬网站的页面。

2.用正则表达式去掉空格,使得程序处理得快。

3.因为CSDN博客文章前面的链接都一样,所以我们只要提取尾部文章编号。

(如:http://blog.csdn.net/qq78442761/article/details/xxxxxxxx

4.扫描整个文件,得到文章标题。

5.保存为csv格式文件

源码下载如下链接:(还在审核,不知道能不能下载)

关于界面,在此不再说明。

来说下下载网页(此处只有伪代码,源码请从上面的链接下载):

void Widget::on_id_getWebCode_pushButton_clicked(){    const QString URLSTR=ui->id_url_lineEdit->text();    const QString FILE_NAME=ui->id_SaveFileName_lineEdit->text();    QUrl url(URLSTR);    QEventLoop loop;    QNetworkAccessManager manager;    //发出请求    QNetworkReply *reply=manager.get(QNetworkRequest(url));    //请求结束并下载完成后,退出子事件循环    connect(reply,SIGNAL(finished()),&loop,SLOT(quit()),Qt::UniqueConnection);    //开启子事件循环    loop.exec();    //将读取到的信息写入文件    sourceCode=reply->readAll();    QFile file(FILE_NAME);    file.open(QIODevice::WriteOnly);    QTextStream out(&file);    out<
<
10){ QMessageBox::information(this,tr("提示"),tr("网站数据获取成功!"),QMessageBox::Ok); hasSourceFile=true; } else{ QMessageBox::information(this,tr("提示"),tr("网站数据获取失败!"),QMessageBox::Ok); hasSourceFile=false; } file.close(); if(file.size()<10){ file.remove(); }}

下面就得到了txt文件(这文件就是网站浏览器读取到的源码)

接下来用正则表达式去空格:

QString divisionSource=sourceCode;    if(!urlLack.isEmpty()&&!titleLack.isEmpty()){        divisionSource.remove(QRegExp("\\s"));

关于如何寻址指定字符串,本程序提供了2个方法,一个是把QString转成char型,进行查找,代码如下:

int urlNumtemp=0;   //为了添加webURLAndTitle[128][2]这个        for(int i=0;i
id_URL_division_lineEdit->text()+temp; qDebug()<

第二个是用QString里面的mid函数(估计效率很低)进行查找:

//下面是提取置顶title        int urlNum=0;   //为了添加webURLAndTitle[128][2]这个        for(int i=0;i

最后是保存为CSV文件

void Widget::saveURLandTilte(){    QFile file("URL&Title.csv");    file.open(QIODevice::WriteOnly);    QTextStream out(&file);    for(int i=0;i

感谢大家阅读。

转载地址:https://it1995.blog.csdn.net/article/details/79288295 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:使用ajax方法实现form表单的提交
下一篇:Android studio如何更改应用程序的图标以及名称

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月17日 11时59分31秒