我这个代码仅仅限制于在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. 4 CSS属性选择器

    4 属性选择器 属性选择器是通过元素的属性及属性值来选择元素的.下面介绍属性选择器的用法. 第一种用法 作用:选择含有指定属性的元素. 语法:[属性名]{} 示例如下: <!DOCTYPE ht ...

  2. #树状数组,概率,离散,双指针#洛谷 6834 [Cnoi2020]梦原

    题目 分析 如果是序列(\(k=1\))也就是积木大赛 那也就是\(\sum_{i=1}^n\max\{a_i-a_{i-1},0\}\) 那关键就是要处理与父节点之间的关系,如果父节点的值小于该节点 ...

  3. #高精度,模拟,vector#C 前缀

    From 2020牛客NOIP赛前集训营-提高组(第二场) 传送门 分析 像我这么菜就只会模拟呀(考场CE全部爆零QWQ) 题意就是不断跳到下一个字母问总共跳的长度有多长, 首先用一个变量存下初始位置 ...

  4. Go 语言变量类型和声明详解

    在Go中,有不同的变量类型,例如: int 存储整数(整数),例如123或-123 float32 存储浮点数字,带小数,例如19.99或-19.99 string - 存储文本,例如" H ...

  5. Windows 杀毒简单有效的方式

    Windows 电脑杀毒通常会选择杀毒软件,这样太笨重,且容易占内存和存在流氓软件侵入. 推荐使用 Windows 自带的恶意软件删除工具 按住 Win + R 键,弹出运行窗口,输入 mrt. 系统 ...

  6. 华为会员开放服务(Membership Kit),助力移动应用快速建设会员生态

    会员开放服务(Membership Kit)是华为面向开发者提供的券码开放能力,开发者可以通过Membership Kit开展灵活多样的营销活动,助力开发者建设会员生态,实现用户运营与增量创收的目标. ...

  7. HMS Core视频编辑服务:AI着色, 忆往昔看今朝

    近期热播的电视剧<人世间>,讲述了70年代无数普通人的故事,细腻的人物形象和真实的故事感动着我们.原来在那个年代,我们的父母和祖辈都在为新中国的美好生活而奋斗着,为国家舍弃了小家团聚的机会 ...

  8. 如何在HarmonyOS对数据库进行备份,恢复与加密

    数据库备份与恢复 场景介绍 当应用在处理一项重要的操作,显然是不能被打断的.例如:写入多个表关联的事务.此时,每个表的写入都是单独的,但是表与表之间的事务关联性不能被分割. 如果操作的过程中出现问题, ...

  9. 一周涨 15k Star 的开源项目「GitHub 热点速览」

    你训练大语言模型(LLM)用的什么框架?有没有想过不用框架训练 GPT-2? GitHub 上就有这么一位大神(Andrej Karpathy),他仅用大约 1k 行的 C 代码就完成了 GPT-2 ...

  10. WIN11 安装 SQL Server 2019,SQLSERVER2022, MYSQL 8.0 ,Docker,Mongodb失败故障分析

    最近研究数据库性能调优遇到各种数据库各种装不上,不知道熬了多少根软白沙,熬了多少颗张三疯,问了多少AI,查了多少网页,熬了两天,终于搞明白了一件事:那就是WIN11 ON ARM (因为拿的是MAC ...