我这个代码仅仅限制于在chrome浏览器中下载china daliy的网页中实现删除可视化内容,因为每个网页的超链接或者文本主内容分布不一样,但是学会了删除一个网页类型的不可视化内容之后,修改其他网页的时候或许只需要小小改动代码就可以了,但前提是你需要把你想要删除网页的txt文件中文本内容在哪个位置。(后面附上源代码)

功能代码主要思想:

①找到你下载的txt网页中的可视化内容,找到他的开端与末尾标志性的字符串。

②写一个函数,传进两个字符串,与你网页文本流进行对比,找到开头就开始录入,找到结尾就结束录入。

③因为标志性一般不会很长,所以字符串我们也没有定义很长,可以根据你所下载网页的里面的文本内容标志所定字符串数组空间的大小。

④首先从文本流中找到'<',开始存字符进字符数组 , 找到'>' 结束存字符数组录入,记得加上'\0'让字符数组变成字符串,然后对网页文本开头标志的字符串进行比较,找到了那就开始进行录入文本内容,只能录入可视化文本,而且与之同时你也要对包含"<"">"这两个字符的内容进行比较,也就是重复开头的工作,存字符串,与结尾标志的字符串进行比较,找到了那就结束录入文本内容。

我的方法可能有点笨,适用于没有学过网页设计,网页编码的人,包括我自己,只能用一些投机取巧比较笨的方法来对一个网页进行操作。

你理解了我这个如何删除不可视化内容,也就是保留可视化内容的操作,之后应该会对其他不是用chrome浏览器下载的china daliy网页进行删除不可视化内容了。

{不懂怎么删除超链接的可以先看一下我另一篇相对比较长但是可能会稍微简单的那两篇文章(删除超链接.....:one-> 如何删除超链接——代码  two->为什么要用fprintf删除文本超链接)第一篇有比较完成的代码,第二篇讲的一些文本流输入输出的一些小细节。第二篇写了我下面这个代码为什么用fscanf而不是其他函数的原因,有兴趣的可以了解一下}

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdbool.h> void deltxt_chrome(char ch, FILE *fp, FILE *temp, char *utter, char *ending);
//删除chrome不可视化内容函数 int main(void)
{
system("mode con cp select=65001");
char ch;
char start_head[100] = "<div class=\"topBar\">";
char end_head[100] = "<footer class=\"mobile-foot\">";
FILE *fp1 = NULL;
FILE *fp2 = NULL;
//这两个字符串是在chrome下载的china daliy网页中文本内容的开始与结尾的标志 /***********删除之前判断是否已经删除不可视化内容*************/
bool open;
fp1 = fopen("D:/大一集合/数据结构实验报告/实验2/temp实验2/chrome.txt", "r");
while(!feof(fp1))
{
if(fgetc(fp1) == '<')
{
if(fgetc(fp1) == '>')
{
open = true;//开 ,代表还没删除不可视化内容
break;
}
}
else open = false;//关 ,代表已经删除了不可视化内容
}
fclose(fp1);
/********************************************************/ /************chrome浏览器删除不可视化内容***************/
if(open == true)
{
fp1 = fopen("D:/大一集合/数据结构实验报告/实验2/temp实验2/chrome.txt", "r");
fp2 = fopen("D:/大一集合/数据结构实验报告/实验2/temp实验2/new_chrome.txt", "w");
//deltxt(ch1, fp1, tmpfp);用临时文件测试,实现删除超链接
deltxt_chrome(ch, fp1, fp2, start_head, end_head);
fclose(fp1);
fclose(fp2);
}
/********************************************************/ return 0; } void deltxt_chrome(char ch, FILE *fp, FILE *temp, char *utter, char *ending)//删除chrome不可视化内容
{
char copy[1001];
char search[100000];
//char ch;
int i = -1, j = 0;
int index = -1;
int time = 0;
int star = -1;
int end = -1; while(!feof(fp))
{
fscanf(fp, "%c", &ch);
if(ch == '<')//存标志字符串
{
index = 1;//表示进来过
pos_1://标记1
for(i = 0; i < 30; i++)
copy[i] = ' ';
copy[0] = '<';
for(i = 1; i < 1000; i++)
{
pos_2:
fscanf(fp, "%c", &copy[i]);
if(copy[i] == '<') goto pos_1;
if(copy[i] == '>')
{
copy[i+1] = '\0';
break;
} }
if(copy[i+1] != '\0')
{
i--;
goto pos_2;//一直扫描到 '>'出现
}
} if(strcmp(copy, utter) == 0)
{
star = 1;
}
if(star == 1)
{
if(strcmp(copy, ending) == 0)
{
return;
}
while(!feof(fp))
{
fscanf(fp, "%c", &ch);//录入
if(ch != '<')//不是<就写入
{
fprintf(temp, "%c", ch);
}
else
{
goto pos_1;//否则遇到< 就继续从新存标签判断开始和结束
}
} } } }

C语言:如何删除在可视化网页中未可见的内容(网页txt)的更多相关文章

  1. 如何在浏览器网页中显示word文件内容

    如何在浏览器网页中显示word文件内容 把word文件读到byte[]中,再Response.OutputStream.Write(bytes)到客户端去 Page_Load事件中写: //FileS ...

  2. 在纯HTML的静态网页中添加一段统计网页访问量的JAVA Script代码?

    如何在网站上进行流量统计呢,可以找第三方服务网站去注册,但也可以在网站上直接添加代码,只需将以下代码copy到你的网页中,复制到</body>之前就可以啦!是不是很简单啊! <scr ...

  3. 使用selenium的方式获取网页中图片的链接和网页的链接,来判断是否是死链(二)

    上一篇使用Java正则表达式来判断和获取图片的链接以及跳转的网址,这篇使用selenium的自带的API(getAttribute)来获取网页中指定的内容 实现内容:获取下面所有图片的链接地址以及跳转 ...

  4. Java使用正则表达式取网页中的一段内容(以取Js方法为例)

    关于正则表达式: 表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串 ...

  5. HtmlParser应用,使用Filter从爬取到的网页中获取需要的内容

    htmlparser是一个纯的java写的html解析的库,它不依赖于其它的java库文件,主要用于改造或提取html.它能超高速解析html,而且不会出错.现在htmlparser最新版本为2.0. ...

  6. 【HTML】网页中如何让DIV在网页滚动到特定位置时出现

    用js或者jquery比较好实现.但你要知道,滚动到哪个特定位置,例如滚动到一个标题h3那显示这个div,那么可以用jquery算这个h3距离网页顶部的距离:$("h3").off ...

  7. 批量删除Maven本地仓库中未下载完成的jar包(不完整的jar包)

    1.删除repository库目录下所有后缀名是.lastUpdated的文件 2.进入maven本地仓库地址: CMD进入windows的路径(或在仓库目录的地址栏直接输入CMD,回车自动打开); ...

  8. 使用 pdf.js 在网页中加载 pdf 文件

    在网页中加载并显示PDF文件是最常见的业务需求.例如以下应用场景:(1)在电商网站上购物之后,下载电子发票之前先预览发票.(2)电子商务管理系统中查看发布的公文,公文文件一般是PDF格式的文件. 目前 ...

  9. 网页中如何启用QQ交谈

    很多网友都会发现好多的网页中会有诸如,网页中如何启用QQ交谈? 1. 登录QQ, 打开网址:http://shang.qq.com/v3/widget.html 启用QQ通讯组件. 2. 选择组件样式 ...

  10. Unity3d:使用uWebKit插件嵌入网页,网页中的flv视频无法播放

    问题描述:unity3d程序,使用uWebKit插件嵌入网页,用来播放FLV视频,有的电脑可以正常播放,有的电脑在网页中播放不了ps:网页中的播放器用的是player.swf解决方案:是由于网页中的播 ...

随机推荐

  1. 基于OpenHarmony的智能金属探测器

    一.简介 智能金属探测器是基于 OpenAtom  OpenHarmony(以下简称"OpenHarmony")操作系统,利用电磁感应原理来探测周围的金属物体.该样例采用多设备协同 ...

  2. win7电脑IE浏览器开发人员工具中不能切换浏览器版本

    win7电脑 IE浏览器 开发人员工具,不能切换IE版本 这个是IE浏览器的问题,需要安装个微软件东西就可以解决这个问题了.亲测有效 64位下载地址:https://wwi.lanzoui.com/i ...

  3. Spring Cloud Config:外部集中化配置管理

    Spring Cloud Config:外部集中化配置管理 SpringCloud学习教程 SpringCloud Spring Cloud Config 可以为微服务架构中的应用提供集中化的外部配置 ...

  4. css 中的BFC

    一.是什么 我们在页面布局的时候,经常出现以下情况: 这个元素高度怎么没了? 这两栏布局怎么没法自适应? 这两个元素的间距怎么有点奇怪的样子? ...... 归根究底是元素之间相互的影响,导致了意料之 ...

  5. kubelet 原理分析

    Reference https://atbug.com/kubelet-source-code-analysis/ kubelet 简介 kubernetes 分为控制面和数据面,kubelet 就是 ...

  6. 转载(localStorage设置过期时间)

    转载地址:https://blog.csdn.net/zhaoxiang66/article/details/86703438 class Storage{ constructor(name){ th ...

  7. 使用ollama + AnythingLLM快速且简单的在本地部署llm3

    使用ollama + AnythingLLM快速且简单的在本地部署llm3 不多说,直接开始 一.安装ollama ollama官网:https://ollama.com/ 下载地址:https:// ...

  8. 力扣541(java)-反转字符串Ⅱ(简单)

    题目: 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符. 如果剩余字符少于 k 个,则将剩余字符全部反转.如果剩余字符小于 2k ...

  9. 【译】Visual Studio Enterprise 中的代码覆盖率特性

    通过使用代码覆盖率功能,您可以发现您的测试需要改进的地方,并使您的软件更加健壮和可靠.在这篇文章中,我们将介绍我们在 Visual Studio Enterprise 2022 中引入的 Code C ...

  10. 实时化或成必然趋势?新一代 Serverless 实时计算引擎

    作者:高旸(吾与),阿里巴巴高级产品专家 本文由阿里巴巴高级产品专家高旸(吾与)分享,主要介绍新一代Serverless实时计算引擎的产品特性及核心功能. 一.实时计算 Flink 版 – 产品定位与 ...