【Delphi 爬虫库 3】使用封装好的 HTML 解析库对 HTML 数据进行解析

2024-05-06 06:28

本文主要是介绍【Delphi 爬虫库 3】使用封装好的 HTML 解析库对 HTML 数据进行解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 解析HTML的意义
      • 1、简单解析HTML代码
      • 2、实战解析HTML代码

解析HTML的意义

HTML是Web页面的构建语言,每个Web开发者都需要了解HTML的基础知识。但是,通过手动阅读和解析需要极大的心智和时间投入。这时候,我们就需要使用HTML在线解析工具,方便直接地解析和编辑HTML代码。

通过使用HTML在线解析工具,我们能够实现快速编辑和预览HTML代码的功能。而且,随着科技发展,HTML在线解析工具被越来越多地应用到各种软件和Web应用程序中,具有越来越广泛的应用前景。

1、简单解析HTML代码

下面是一个经典的HTML解析的例子:

<!DOCTYPE html>
<html>
<head><title>Hello, World, This is title!</title>
</head>
<body><h1>Hello, World, This is h1!</h1><p>This is a paragraph1.</p><p>This is a paragraph2.</p>  
</body>
</html>

我们的目标就是利用Html解析库提取出title h1 p 中的内容.。

核心代码:

procedure TForm1.Button4Click(Sender: TObject);
varLHtml: IHtmlElement;LList: IHtmlElementList;ExtractedText: string;
beginLHtml := ParserHTML(Memo1.Text);if LHtml <> nil thenbeginExtractedText := LHtml.Find('title').Text;Memo2.Lines.Add(ExtractedText);ExtractedText := LHtml.Find('h1').Text;Memo2.Lines.Add(ExtractedText);ExtractedText := LHtml.Find('p').Text;Memo2.Lines.Add(ExtractedText);end;
end;

运行返回:

Hello, World, This is title!
Hello, World, This is h1!
This is a paragraph1.This is a paragraph2.

2、实战解析HTML代码

对虎扑体育中的数据进行解析
HTML源代码非常的长,这里就不贴出了,我们需要对最后的<script id="__NEXT_DATA__" type="application/json">中的json数据解析出来.
核心代码:

procedure TForm1.Button5Click(Sender: TObject);
varLHtml: IHtmlElement;LList: IHtmlElementList;Json: string;
beginLHtml := ParserHTML(Memo1.Text);if LHtml <> nil thenbeginLList := LHtml.Find('SCRIPT');for LHtml in LList dobeginif LHtml.Orignal = '<script id="__NEXT_DATA__" type="application/json">' thenbeginJson:= LHtml.InnerHtml;Memo2.Lines.Add(Json);end;end;end;
end;

运行返回:
在这里插入图片描述
成功解析提取出Json,至于对Json怎么解析上一篇文章已经讲过了。

这篇关于【Delphi 爬虫库 3】使用封装好的 HTML 解析库对 HTML 数据进行解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/963633

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件