商务服务
.html网页文件:标题,内容,url的提取
2024-12-16 15:22

        对下载下来的文件做处理,将网页文件中的标题,内容,以及url网址,都提取出来。

.html网页文件:标题,内容,url的提取

读取文件

        既然是对网页文件做搜索,就需要程序中有网页文件。

        所以就需要将网页文件从下载的目录中,读到程序中,也就是读到内存储存起来,方便后续的处理

         那如何对文件进行读取呢

        这里只记录C++17中使用 boost::filesystem实现遍历文件夹的方法

通过使用boost::filesystem提供的迭代器和成员函数实现对目录文件的便利。。

 

代码解析:首先用文件目录src_path实例化root_path对象,在判断该对象存不存在,不存在就没必要再向下执行,将迭代器用src_path目录进行实例化,再用迭代器去递归式的遍历该目录文件,如果不是普通文件或者不是网页文件,就不进行读取,反之,将网页文件读取到file_list文件链表中。

        将文件读取到file_list中(也就是内存中)之后,接着就需要对网页文件进行解析,解析里面的:标题,内容,url网址。

        我们在解析网页文件时,需要了解网页文件的结构你对结构不了解,就无法进行解析,解析出来也是错的

 也就是<title>和</title>之间就是标题,<body>和</body>之间就是网页内容

我们可以利用string中提供的find()找到<title>和</title>的位置,中间就时标题再利用substr()将标题进行截取,再将标题返回

 
 

然而,网页文件的内容,却不像,文件标题那样容易好找,下图是文件内容的示例图

 通过上图可以看出内容是在>和<之间,那我们只需要向上面那样找到>和<之间的内容,将他们返回即可。

我们需要利用了一个简易的状态机进行标记,利用枚举定义两个常量CONTENTLABLE,分别表示内容标签遍历到‘>’时就标记CONTENT,遍历到'<'时,就标记为LABLE,然后利用switch语句进行判断和读取

我们不想保留原始文件中的 ,因为我们想用 作为html解析之后文本的分隔符,所以这里用' '空格进行分割

 
 

官方url样例

 

 我们下载下来的url样例

 

因为我们将下载下来的文件放到了"data/input"目录下,拷贝到我们项目中的样例就变成:data/input/accumulators.html

官方网址:url_head = "https://www.boost.org/doc/libs/1_78_0/doc/html";

我们下载下来的文件就是官方网址下的一个目录(所以将前面的"data/input"删除就是官网文档下的文件名
url_tail = [data/input](删除) /accumulators.html -> url_tail = /accumulators.html
最终的网址url = url_head + url_tail ; 相当于形成了⼀个官网链接。

 

既然我们已经提取到了,标题,内容,和url网址,那我们就将提取到的这些内容利用结构体组织起来组织起来

 

里面运用了std::move()将左值变为右值vector中提供了移动拷贝和移动赋值,可以很好的将右值拷贝到vector中减少了一定的拷贝,提高了效率。这个是C++中容器结合右值引用之间的特性设计出来的。

如果不理解右值引用,那就不用了管了只知道push_back()是将结构体插入vector中即可

保存处理好的网页文件

关于std::ofstream向文件中写入数据,这里不做介绍。请参考

 

以上就是网络文件处理模块的内容,我们将处理好的文件放到"data/raw_html/raw.txt"这个目录下,在接下来的模块中,会对处理好的文件再次操作。

    以上就是本篇文章【.html网页文件:标题,内容,url的提取】的全部内容了,欢迎阅览 ! 文章地址:http://fabua.ksxb.net/news/4465.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 海之东岸资讯移动站 http://fabua.ksxb.net/mobile/ , 查看更多   
最新文章
扎堆儿上新大戏,北京舞台春光正好
春光正浓,北京舞台上生机盎然。近期,多部新戏正在紧张排练,很快将与观众相见。从经典到新作,从本土向世界,这批新戏横跨戏剧
险资最新重仓股名单出炉,钟爱银行和通信,加仓港股热情正浓
上市公司2024年年报基本披露完毕,险资持股路线图也逐步清晰。保险资金这个头顶“长期资金”“耐心资本”光环的市场主体,由于险
指划修图P图手机p图「指划修图P图」
《指划修图p图手机版》是一款智能美图修图软件,操作简单,容易上手,一键将您的照片进行自动修图,提亮肤色,改善颜值,做出各
股票ETF两日“吸金”1670亿,护盘见效市场企稳资金流入这些赛道
三大指数连续两日收涨,成交额连续放量,随着市场情绪修复,资金流入的方向,在4月9日开始出现变化。 公开数据显示,股票型ETF市
开荒建造类游戏手机版大全 2024可玩性高的生存手游推荐生存游戏手机版「开荒建造类游戏手机版大全 2024可玩性高的生存手游推荐」
本篇将送上几款开荒建造类游戏手机版。在各种艰苦环境下开荒建造来完成生存,是种很能令人们得到满足感的游戏类型。它们可让玩家
地狱边境手机版地狱边境手机版下载「地狱边境手机版」
地狱边境手机版是一款以黑白画风为主的冒险解谜题材游戏,英文叫作:LIMBO,该游戏由Playdead Studios开发,并由PC端移植而来,
应用商店最新排名:360手机助手连续两年领跑360手机应用商店「应用商店最新排名:360手机助手连续两年领跑」
日前,在2016全球大数据峰会GBDC2016上,全国手机媒体委员会秘书长吴红晓向业界解读了《中国移动互联网发展指数2016数据报告》。
晓鸣股份:股票交易异常波动
金融界4月7日消息,发布异动公告,公司股票交易价格于 2025 年 4 月 7 日连续 1 个交易日收盘价格涨幅偏离值累计达到 34.92%(超
广州最被低估的美食高地,是——
每年我们写广州美食榜单,有一个鲜为人知的低调片区,年年都能在竞争最激烈的正餐圈占据一席之地。就是我们心中认为广州美食最卧
已设置的指纹解锁怎样解除_手机里这3个设置是时候用起来了,能够保护你的个人隐私...手机里的秘密「已设置的指纹解锁怎样解除_手机里这3个设置是时候用起来了,能够保护你的个人隐私...」
适用于全系列YOLO算法的危险驾驶行为(打哈欠、抽烟、打电话)数据集6499张+yolo格式标签(可数据增强)【数据集说明】1、数据集