HtmlParse:一款超轻量级的HTML文件解析和爬取工具

2023-10-27

HtmlParse 是一款基于windwos平台的HTML文档解析工具,可快速构建DOM树,从而轻松实现网页元素的爬取工作。DOM树就是一个HTML文档的节点树,每个节点由:标签(Tag)、属性(Attribute)、文本(Text)三个值来描述。
 
所谓的HTML文档解析,指的就是如何构建一颗DOM树,只有成功构建出DOM树,才有可能进行后续的数据爬取和分析工作。显然,构建DOM树是比较复杂的过程,因为不是每一个HTML文档都会严格按照规范来书写,因此解析过程需要具有一定容错能力。此外,解析效率也是一个需要考虑的因素,也就是说最好通过一次文档扫描即可建立起DOM树,而不是反复扫描。
 
下面是HtmlParse介绍。
 

工具特点

1、绿色纯天然,无任何第三方依赖库,文件大小不到150K;
2、解析速度快,具有一定的HTML语法容错能力,可快速将HMTL文档解析为DOM树;
3、基于命令行参数,可通过不同参数获取指定TAG的属性值和文本内容,从而实现网页爬取功能;
4、可将爬取数据输出为json格式,方便第三方程序进一步分析和使用;
5、可爬取script脚本到指定的js文件中;

下载地址http://softlee.cn/HtmlParse.zip
 

使用方法

HtmlParse HtmlPathFile -tag TagName [-attr] [Attribute] [-o] [JsonPathFile]

解析指定的HTML文档,并将文档中指定的标签及属性输出到指定文件中。

HtmlPathFile:必选参数,要解析的HTML文档路径名,如果文件路径中有空格,可使用双引号将文件路径包含;

-tag:必选参数,用于指定要抓取的HTML标签名称;
-attr:可选参数,用于指定标签的属性值,如果不指定,则返回该标签的所有属性值;
-o:可选参数,用于指定抓取内容输出的文件,可将抓取的内容保存为json格式的文件。 如果该参数不指定,则进行控制台输出。 如果抓取的是script、style则会保存为js格式文件。

如果要抓取doctype,可使用-tag doctype,将整个doctype内容获取。此时将会忽略-attr指定的任何属性值。

 

举例说明

1、爬取网页中所有超链接

HtmlParse c:/sina.html -tag a -attr href -o c:/sina.json

解析C盘下的sina.html文档,并提取该文档中的所有超链接到sina.json文件中。其中**-tag a -attr href**,用于指定获取超链接标签ahref属性。

2、爬取网页中所有图片链接

HtmlParse c:/sina.html -tag img -attr src -o c:/sina.json

解析C盘下的sina.html文档,并提取该文档中的所有图片链接到sina.json文件中。

3、爬取网页中所有脚本

HtmlParse c:/sina.html -tag script -o c:/sina.js

解析C盘下的sina.html文档,并提取该文档中的所有脚本函数到sina.js文件中。

 

输出内容

如果通过-o参数指定输出文件,则会生成一个json格式的文档。
TagName为爬取的标签名称,比如超链接的a,其值是一个json数组,数组中的每个内容为Json对象,每个Json对象,有属性和文本构成。如果-attr 指定了要爬取的属性,则AttrName为指定的属性名称,比如href或src。text为该标签的文本内容,有些标签不存在文本内容,比如img、meta等,则该值为空。json格式如下:

{
  "TagName":
  [
     {"AttrName":"AttrValue1", "text":"text1"}
     {"AttrName":"AttrValue1", "text":"text2"}
  ]
}

下面是一个sina网页的所有超链接json

{
	"a": [{
		"href": "javascript:;",
		"text": "设为首页"
	}, {
		"href": "javascript:;",
		"text": "我的菜单"
	}, {
		"href": "https://sina.cn/",
		"text": "手机新浪网"
	}, {
		"href": "",
		"text": "移动客户端"
	}, {
		"href": "https://c.weibo.cn/client/guide/download",
		"text": "新浪微博"
	}, {
		"href": "https://so.sina.cn/palmnews/web-sinanews-app-download.d.html",
		"text": "新浪新闻"
	}, {
		"href": "https://finance.sina.com.cn/mobile/comfinanceweb.shtml",
		"text": "新浪财经"
	}, {
		"href": "https://m.sina.com.cn/m/sinasports.shtml",
		"text": "新浪体育"
	}, {
		"href": "https://tousu.sina.com.cn/about_app/index?frompage=heimaopc",
		"text": "黑猫投诉"
	}, {
		"href": "http://blog.sina.com.cn/lm/z/app/",
		"text": "新浪博客"
	}, {
		"href": "https://games.sina.com.cn/o/kb/12392.shtml",
		"text": "新浪游戏"
	}, {
		"href": "https://zhongce.sina.com.cn/about/app",
		"text": "新浪众测"
	}, {
		"href": "https://mail.sina.com.cn/client/mobile/index.php?suda-key=mail_app&suda-value=login",
		"text": "新浪邮箱客户端"
	}, {
		"href": "javascript:;",
		"text": "关闭置顶"
	}, {

写在最后

网页下载可通过wincurl工具。

下载地址http://softlee.cn/wincurl.zip

介绍文章:《wincurl:一款基于HTTP协议的轻量级web资源抓取和上传工具

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HtmlParse:一款超轻量级的HTML文件解析和爬取工具 的相关文章

随机推荐

  • 如何在 Ubuntu 上安装最新的 Node.js

    如果您一直在探索前端和 JavaScript 的世界 您可能已经遇到过 Node js 它是一个服务器端框架 使用 Google 的 V8 引擎来执行 JavaScript 代码 开发人员可以使用 Node js 因为它为他们提供了一种使用
  • 如何在 Windows 上安装 NVM

    NVM 节点版本管理器 是用于在系统上安装 Node js 的命令行实用程序 它允许我们安装多个 Node js 版本并在它们之间切换 这对于运行需要不同 2 个节点版本的多个节点应用程序的系统很有帮助 本教程将帮助您使用 NVM 在 Wi
  • 如何在 Linux Mint 上安装 Apache Solr 21/20

    Apache Solr 是一个基于 Java 构建的强大的开源搜索平台 它广泛用于索引 搜索和分析大量文本内容 在 Linux Mint 上安装它非常简单 在本指南中 我们将逐步完成在 Linux Mint 21 20 或 19 上安装并运
  • 如何在 Ubuntu 20.04 上安装 Nagios

    Nagios 是一个流行的开源监控系统 Nagios 保留整个 IT 基础设施的清单 并确保您的网络 服务器 应用程序 服务和流程正常运行 如果发生故障或性能不佳 Nagios 将通过各种方法发送通知警报 本文介绍如何在 Ubuntu 20
  • 如何在 Ubuntu 20.04 上设置或更改时区

    使用正确的时区对于许多与系统相关的任务和流程至关重要 例如 cron 守护进程使用系统的时区来执行 cron 作业 并且日志文件中的时间戳基于同一系统的时区 在 Ubuntu 上 系统的时区是在安装过程中设置的 但以后可以轻松更改 本文介绍
  • Linux 中的粘贴命令(合并行)

    paste是一个允许您水平合并文件行的命令 它输出由指定为参数的每个文件的顺序对应行组成的行 并用制表符分隔 在本教程中 我们将解释如何使用paste命令 如何使用paste命令 paste是鲜为人知且较少使用的 Linux 和 Unix
  • 如何在 CentOS 7 上安装 Memcached

    Memcached 是一个免费开源的高性能内存键值数据存储 它主要用作缓存系统 通过缓存数据库调用结果中的各种对象来加速应用程序 在本教程中 我们将解释如何在 CentOS 7 上安装和配置 Memcached 先决条件 在继续本教程之前
  • 如何在 Ubuntu 18.04 上安装 Apache Maven

    Apache Maven 是一个免费的开源项目管理和理解工具 主要用于 Java 项目 Maven 使用项目对象模型 POM 它本质上是一个 XML 文件 其中包含有关项目 配置详细信息 项目依赖项等的信息 在本教程中 我们将向您展示在 U
  • 如何在 Ubuntu 18.04 上安装和使用 Wine

    Wine 是一个开源兼容层 允许您在类 Unix 操作系统 例如 Linux FreeBSD 和 macOS 上运行 Windows 应用程序 Wine代表 Wine 不是模拟器 它是一个将 Windows 系统调用转换为 Linux 和其
  • 如何在 Bash 中比较字符串

    在编写 Bash 脚本时 您经常需要比较两个字符串以检查它们是否相等 当两个字符串具有相同的长度并且包含相同的字符序列时 它们相等 本教程介绍如何在 Bash 中比较字符串 比较运算符 比较运算符是比较值并返回 true 或 false 的
  • 在 CentOS 8 上安装 Odoo 14

    Odoo 是世界上最受欢迎的一体化商业软件 它提供一系列业务应用程序 包括 CRM 网站 电子商务 计费 会计 制造 仓库 项目管理 库存等等 全部无缝集成 Odoo根据使用案例和可用技术 可以以不同的方式安装 安装 Odoo 最简单快捷的
  • 如何在 CentOS 7 上使用 Apache 安装 WordPress

    WordPress 是全球最受欢迎的开源博客和 CMS 平台 为当今互联网上四分之一的网站提供支持 它基于 PHP 和 MySQL 并包含大量可以通过免费和高级插件和主题进行扩展的功能 WordPress 是创建在线商店 网站或博客的最简单
  • 如何在 Ubuntu 20.04 上安装 Tomcat 9

    本教程介绍如何在 Ubuntu 20 04 上安装和配置 Tomcat 9 Apache Tomcat 是一个开源 Web 服务器和 Java Servlet 容器 它是构建基于 Java 的网站和应用程序的最流行的选择之一 Tomcat
  • 如何在 Ubuntu 18.04 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种标准网络协议 用于在远程网络之间传输文件 有许多可用于 Linux 的开源 FTP 服务器 最流行和最广泛使用的是PureFTPd ProFTPD and vsftpd 在本教程中 我们将安装 vsftpd 非常
  • Linux 中的取消链接命令(删除文件)

    在本文中 我们将向您展示如何使用 GNU Linux 系统中的删除文件unlink命令 删除文件unlink unlink是一个用于删除单个文件的命令行实用程序 的语法unlink命令如下 unlink filename Where fil
  • CentOS部署kvm虚拟化机器

    操作步骤 部署kvm环境 将系统ISO镜像拉入宿主机后 进行KVM虚拟机安装 结构图 为虚拟机添加一块2G磁盘 更改虚拟机网络使用桥接模式 为关机状态虚拟机创建快照 部署kvm环境 创建虚拟化服务的宿主机操作系统 安装时候两种选择方式 都可
  • 前端页面自适应设置

    1 前端响应式布局的目的 适应不同尺寸设备 使页面展示效果更好 2 rem 原理 根据UI设计稿和设备尺寸的大小比例 动态计算并更改html根元素字体大小 页面使用rem单位自适应缩放 对于一些引入的库 例如swiper antd caro
  • postman拦截浏览器请求

    postman可以去浏览器请求进行拦截 并将请求存放至集合 原理 postman内部有捕获http请求流量的代理 postman app 监听这客户端程序或者设备发出的调用请求 postman 代理端会捕获到请求并把它转发到服务器 服务器将
  • vlc android的编译及截图,录制视频等功能

    编译的环境是ubuntu 12 04 要安装好java 配置好环境变量 按照http wiki videolan org AndroidCompile配置好 就可以编译了 plain view plain copy export JAVA
  • HtmlParse:一款超轻量级的HTML文件解析和爬取工具

    HtmlParse 是一款基于windwos平台的HTML文档解析工具 可快速构建DOM树 从而轻松实现网页元素的爬取工作 DOM树就是一个HTML文档的节点树 每个节点由 标签 Tag 属性 Attribute 文本 Text 三个值来描