使用 Java 从 HTML 中分离纯文本的三种方法

本文介绍了如何使用Cloudmersive Document Conversion API在Java中将HTML转换为纯文本,包括从HTML文件、HTML字符串中提取文本,并演示了删除HTML的API调用示例。
摘要由CSDN通过智能技术生成

在我们访问的每个网页上,我们都会遇到大量的多媒体内容,所有这些内容都是用超文本标记语言(Hyper Text Markup Language, HTML)放在一起展示的。HTML是许多开发人员都熟悉的一种基本编程语言,它由各种元素组成——当被浏览器解释时——通常由各种自定义元素组成连贯、有组织和有意的显示。这段代码提供了一个框架,用于我们如何查看图像、视频、正文、超链接、数据输入字段以及在网页上你能想到的任何其他内容-任何人都可以通过在任何浏览器上单击右键来查看所有这些代码。

考虑到任何复杂的HTML字符串中都存在大量的格式化元素,代码的实际主题(隐藏在这些字符串中的文本内容和文件路径)可能有点难以独立于这些格式化规范访问。例如,如果我们想查看网页副本,然后以有意义的方式编辑或操作该文本,我们将很难直接从显示的网页复制和粘贴该信息。我们最终只会得到一堆格式不一致的文本,充斥着超链接、徽标、脱节的制表符和空格等。这并不是说这是不可能的。当然,我们可以从任何网页中复制小的文本片段,并在Microsoft Word等富文本编辑器中重新设置这些文本片段的格式,使其类似于原始格式。问题是这种“点击和点击”的方法消耗了我们工作中的宝贵时间,如果我们需要扩展我们的操作来包含多个网站和数千字符的文本,尝试手动操作从长远来看将对我们自己造成很大的伤害。

与其浪费宝贵的时间和精力试图通过灵巧的点击和拖动来获取我们想要的文本,还不如使用专门用于这样做的API服务完全从HTML代码中删除它。我们可以通过一些方法来实现这种分离,这些方法虽然表面上看起来相同,但可以适应稍微不同的用例。这些方法包括:

  1. 将HTML文件转换为纯文本
  2. 将HTML字符串转换为纯文本
  3. 从文本字符串中删除HTML

第一种方法和第二种方法本质上是相同的操作,只不过有两种不同的场景:在前者中,HTML代码以文件形式提供给我们(当我们点击它时,它会直接作为浏览器页面打开);在后者中,我们可以以文本字符串的形式提供给我们(例如,我们通过在web浏览器中右键单击复制的HTML)。第三种方法在技术上与前两种方法实现了相同的目标,它设想了一个更安全的用例,帮助我们在给定的文本字符串中识别HTML和跨站脚本攻击(一种恶意参与者将可执行脚本放入可信应用程序/网站代码的网络威胁形式),而无需假设我们有一个完整的HTML字符串来处理。

在本文的其余部分,我将演示三种简单的API解决方案,它们可用于将HTML代码与纯文本内容分离,适用于上面列出的三种略有不同的场景。这些API都是免费使用的,可以通过Cloudmer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在前后端分离的架构,验证码的生成和验证应该由后端实现,前端只负责将用户输入的验证码传输到后端进行验证。具体实现步骤如下: 1. 后端生成验证码 后端可以使用Java的UUID类生成唯一的验证码字符串,然后将其保存到Session或者放到Redis等缓存,以便后续验证使用。示例代码如下: ```java String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String verifyCode = VerifyCodeUtil.generateVerifyCode(4); redisTemplate.opsForValue().set(uuid, verifyCode, 5, TimeUnit.MINUTES); // 将验证码保存到缓存,有效期为5分钟 return uuid; ``` 2. 后端将验证码返回给前端 后端可以将生成的验证码(例如uuid)作为响应返回给前端前端可以将其保存在本地,以便用户在提交表单时一并传输给后端。示例代码如下: ```java @RequestMapping("/code") public String getCode(HttpServletResponse response) throws IOException { String uuid = verifyCodeService.generateVerifyCode(); response.setHeader("Access-Control-Expose-Headers", "uuid"); response.setHeader("uuid", uuid); return null; } ``` 3. 前端展示验证码 前端可以使用图片或者文本的形式展示验证码,用户需要在提交表单时输入正确的验证码。示例代码如下: ```html <img src="/api/code" alt="验证码"> <input type="text" name="verifyCode" placeholder="请输入验证码"> ``` 4. 前端将验证码传输到后端进行验证 用户在提交表单时,前端需要将验证码(例如uuid)和用户输入的验证码一起传输到后端进行验证。后端可以从Session或者缓存获取生成的验证码进行比对,判断用户输入的验证码是否正确。示例代码如下: ```java String uuid = request.getHeader("uuid"); String verifyCode = request.getParameter("verifyCode"); String code = redisTemplate.opsForValue().get(uuid); if (code == null || !verifyCode.equalsIgnoreCase(code)) { return "验证码错误"; } ``` 以上是一个简单的验证码实现过程,具体实现还需要根据自己的业务需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两三颗小熊糖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值