【Go|第8期】Lorca读取HTML的三种方式

日期:2023年7月16日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢 ^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


在这里插入图片描述


文章目录

  • 一、精彩回顾
  • 二、前言
  • 三、读取HTML的三种方式
    • (1)DataURI协议读取HTML
    • (2)file协议读取HTML
    • (3)http协议读取HTML


一、精彩回顾

《【Go|第5期】Lorca无法正常运行的解决方案》
《【Go|第6期】浅谈Lorca页面中Chrome正受到自动测试软件的控制》
《【Go|第7期】浅谈Lorca库中的Chromium命令行参数》

二、前言

Lorca 是一个用于构建跨平台桌面应用程序的 Go 语言库,它提供了将 Web 界面嵌入到 Go 应用程序中的功能。接下来我们来了解下使用 Lorca 库读取 HTML 的三种方式吧 ^ - ^

三、读取HTML的三种方式

(1)DataURI协议读取HTML

Data URL(数据URL)是一种URI方案,允许将数据直接嵌入到网页或文档中,而不是链接到外部文件。它允许将小量数据作为URL的一部分进行包含。

  • 语法:
data://<media type>/<data>
data://<media type><data>
data 协议方案(Scheme媒体类型或内容类型(Media Type or Content Type),它用于表示嵌入在 URI 中的数据的格式和性质。指实际嵌入在URI中的数据内容部分。数据可以是任何格式,例如文本、图像、音频、视频或二进制数据。数据内容通常使用Base64编码或URL编码进行表示。

一些常见的协议方案

协议方案说明
http超文本传输协议,用于访问和传输 Web 页面和其他资源。
https安全的超文本传输协议,使用加密通信进行安全的 Web 访问。
ftp文件传输协议,用于在网络上进行文件传输。
file本地文件协议,用于访问计算机本地文件系统中的文件。
mailto电子邮件协议,用于发送电子邮件。
data数据协议,用于在URI中直接嵌入数据。
tel电话号码协议,用于指定电话号码进行拨号。

一些常见的媒体类型或内容类型

媒体类型或内容类型说明
text/plain表示纯文本数据。
text/html表示 HTML 文档。
image/jpeg表示 JPEG 图像。
image/png表示 PNG 图像。
application/pdf表示 PDF 文档。
application/json表示 JSON 数据。
audio/mp3表示 MP3 音频。
video/mp4表示 MP4 视频。
  • 示例:

在这里插入图片描述
运行 go run .,页面显示如上所示

  • 代码:
package main

import (
	"net/url"

	"github.com/zserge/lorca"
)

func main() {
	// (1)创建一个新的窗口,宽480 x 高320
	ui, _ := lorca.New("", "", 480, 320, "--remote-allow-origins=*")
	defer ui.Close()

	// (2)在Lorca中加载dataURI资源
	// (2-1)HTML内容
	html := `
		<!DOCTYPE html>
		<html>
		<head>
			<title>Embedded HTML</title>
		</head>
		<body>
			<h1>Hello, Lorca!</h1>
			<h1>Embedded HTML</h1>
		</body>
		</html>
	`

	// (2-2)创建一个HTML内容的data URL
	dataURI := "data:text/html," + url.PathEscape(html)

	// (2-3)在Lorca中加载dataURI
	ui.Load(dataURI)

	// (3)运行窗口直关闭
	<-ui.Done()
}

(2)file协议读取HTML

文件协议(File Protocol)是一种用于访问本地文件系统资源的URIUniform Resource Identifier)协议。它允许通过指定文件路径来访问本地计算机上的文件。

  • 语法:
file://<host>/<path>
file//<host><path>
file 协议可选部分,通常为空,表示本地主机。必需部分,表示文件在文件系统中的路径。

因为 <host> 通常为空,所以常见写法为 file///<path>,示例 file///D:/loadhtml/index.html

  • 示例:

在这里插入图片描述

  • 代码:
package main

import "github.com/zserge/lorca"

func main() {
	// (1)创建一个新的窗口,宽480 x 高320
	ui, _ := lorca.New("", "", 480, 320, "--remote-allow-origins=*")
	defer ui.Close()

	// (2)在Lorca中加载本地文件(file协议 file://<host>/<path>)
	// NO1: file:/// + path("/")
	ui.Load("file:///D:/loadhtml/02FileLoadHtml/index.html")
	// NO2: file:/// + path("\\")
	//ui.Load("file:///D:\\loadhtml\\02FileLoadHtml\\index.html")

	// (3)运行窗口直关闭
	<-ui.Done()
}

(3)http协议读取HTML

HTTPHypertext Transfer Protocol)是一种用于在 Web 上进行数据传输的协议。它是一种无状态的应用层的协议,基于客户端-服务器模型,通过请求-响应的方式进行通信。

  • 语法:
http://<host>:<port>/<path>?<query>
http://<host><port><path><query>
http 协议方案(Scheme主机名域名,指示要访问的服务器的地址。要连接的服务器端口号,默认为80服务器上资源的路径包含了查询参数,用于向服务器传递附加的数据。
  • 示例:

在这里插入图片描述

  • 代码:
package main

import "github.com/zserge/lorca"

func main() {
	// (1)创建一个新的窗口,宽480 x 高320
	ui, _ := lorca.New("", "", 480, 320, "--remote-allow-origins=*")
	defer ui.Close()

	// (2)在Lorca中加载网络URL
	ui.Load("https://www.csdn.net/")

	// (3)运行窗口直关闭
	<-ui.Done()
}


参考文章:

  • 《github.com/zserge/lorca》

我的微信公众号 会飞的小猴子,等你来关注哦 ^ - ^


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/131653604

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37760.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

天天刷题-->LeetCode(最长回文子串)

个人名片&#xff1a; &#x1f405;作者简介&#xff1a;一名大二在校生&#xff0c;热爱生活&#xff0c;爱好敲码&#xff01; \ &#x1f485;个人主页 &#x1f947;&#xff1a;holy-wangle ➡系列内容&#xff1a; &#x1f5bc;️ tkinter前端窗口界面创建与优化 &…

JVM内存结构——前言

前提 1. 认识JVM&#xff0c;什么是JVM 简单来说&#xff0c;就是java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 1.1 JVM &#xff08;java虚拟机&#xff09;的好处 &#xff1a; 一次编写&#xff0c;到处运行的机制 &#xff08;因为java语言是跨…

残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)

在第一个基于cnn的架构(AlexNet)赢得ImageNet 2012比赛之后&#xff0c;每个随后的获胜架构都在深度神经网络中使用更多的层来降低错误率。这适用于较少的层数&#xff0c;但当我们增加层数时&#xff0c;深度学习中会出现一个常见的问题&#xff0c;称为消失/爆炸梯度。这会导…

可靠的手机问题修复工具分享 - 修复各种 Android 系统问题

一般来说&#xff0c;安卓手机都可以流畅运行。但不幸的是&#xff0c;有时您的Android手机可能无法正常运行&#xff0c;例如无响应、突然重启等。在这种情况下&#xff0c;您将需要Android手机维修软件。这些 Android 修复工具可以帮助您轻松解决此类问题&#xff0c;并还给您…

5.3 Python高级特性之-列表生成式、生成器、迭代器

一、 列表生成式 是Python内置的非常简单却强大的可以用来创建list的生成式 具体可根据如下案例理解&#xff0c;且代码也是可用的""" 1、 生成[0,1,2,3,4,5,6]这样列表 """ print(list(range(0, 7))) """ 2、 生成[0&#xff0…

【数据结构】树与二叉树(上)

目录 前言&#xff1a; 一、树&#xff1a; 1.树的概念&#xff1a; 2.树的相关概念&#xff1a; 3.树的表示&#xff1a; 4.书的实际使用场景&#xff1a; 二、二叉树&#xff1a; 1.二叉树的概念&#xff1a; 2.两种特殊二叉树&#xff1a; ①.满二叉树&#xff1a;…

在Vue种使用Vant框架

第一步&#xff1a;打开Vant框架地址 https://vant-contrib.gitee.io/vant/v2/#/zh-CN/home 第二步&#xff1a; 安装 第三步&#xff1a;引入&#xff08;我这里使用的是按需导入&#xff09; 执行命令&#xff1a; npm i babel-plugin-import -D ①&#xff1a;src下创建个…

Oracle解析JSON字符串

Oracle解析JSON字符串 假设某个字段存储的JSON字符串&#xff0c;我们不想查出来后通过一些常见的编程语言处理&#xff08;JSON.parse()或者是JSONObject.parseObject()等&#xff09;&#xff0c;想直接在数据库上处理&#xff0c;又该如何书写呢&#xff1f; 其实在ORACLE中…

小程序api的promise化

小程序根目录cmd运行安装命令 npm install --save miniprogram-api-promise1.0.4 安装完成之后先到根目录中删除miniprogram_npm文件夹(不删除构建npm时可能会出现问题) 删除之后再在工具中点击构建npm 构建成功之后会看到根目录中重新出现了miniprogram_npm文件夹 在app.j…

RNN LSTM

参考资料&#xff1a; 《机器学习2022》李宏毅史上最详细循环神经网络讲解&#xff08;RNN/LSTM/GRU&#xff09; - 知乎 (zhihu.com) LSTM如何来避免梯度弥散和梯度爆炸&#xff1f; - 知乎 (zhihu.com) 1 RNN 的结构 首先考虑这样一个 slot filling 问题&#xff1a; 注意…

(简单)剑指Offer 21. 调整数组顺序使奇数位于偶数前面 Java

记数组nums的长度为n。从先nums左侧开始遍历&#xff0c;如果遇到的是奇数&#xff0c;就表示这个元素已经调整完成&#xff0c;继续从左往右遍历&#xff0c;直到遇到一个偶数。然后从nums右侧开始遍历&#xff0c;如果遇到的是偶数&#xff0c;就表示这个元素已经调整完成了&…

[JVM] 1. 初步认识JVM

核心思想&#xff1a; “Write Once, Run anywhere”. 各种语言通过编译器转换成字节码文件&#xff0c;在JVM上运行。 一、Java虚拟机 Java虚拟机是一台执行Java字节码的虚拟计算机&#xff0c;它拥有独立的运行机制&#xff0c;其运行的Java字节码也未必由Java语言编译而成…

辅助驾驶功能开发-功能规范篇(27)-2-导航式巡航辅助NCA

书接上回 2.2.2.3规划控制模块 2.2.2.3.1.全局导航规划 当用户输入导航终点时&#xff0c;全局导航规划模块会根据高精地图的覆盖区域将全局导航路径分为ICA,NCA可用段。实现ICA/NCA功能的划分及自动升降级。 当自车未按照导航路径行驶时(如未使出指定匝道&#xff0c;路口未…

折叠屏手机的屏幕,华为Mate X3给出了一份“内外兼修”的解决方案

说起折叠屏手机&#xff0c;屏幕一直都是这个领域的重头戏&#xff0c;很多人都对折叠屏手机有一种刻板印象&#xff0c;那就是脆弱。但是&#xff0c;3月份华为最新推出的Mate X3可以说是非常的亮眼&#xff0c;在内外屏幕、水滴铰链、影像系统等多个核心部件的全方位提升&…

Python面向对象学习整理(一)

一、面向对象中的几点概念 1.1 什么是类&#xff1f; 类&#xff1a;用户定义的对象原型&#xff08;prototype&#xff09;&#xff0c;该原型定义了一组可描述该类任何对象的属性&#xff0c;属性是数据成员&#xff08;类变量 和 实例变量&#xff09;和方法&#xff0c;可…

FPGA实验三:状态机的设计

目录 一、实验目的 二、实验要求 三、实验代码 1.design source文件部分代码 2.测试文件代码 四、实验结果及分析 1、引脚锁定 2、仿真波形及分析 &#xff08;1&#xff09;设计好序列检测器 &#xff08;2&#xff09;仿真波形&#xff08;检测11010&#xff09; 3…

Python爬虫实战之原神公告获取

前言 好久不见了吧&#xff0c;博主最近也是成为了准高三&#xff0c;没有太多时间去创作文章了&#xff0c;所以这篇文章很有可能是高考前最后一篇文章了(也不一定&#x1f609;) 言归正传&#xff0c;本次文章主要讲解如何去爬取原神官网的公告(我不玩原神&#xff01;&…

英飞凌BLDC驱动芯片替换-屹晶微

EG12521替代IR2106&#xff0c;NCP5106 EG2003替代IR2003 EG2103替代IR2103、IRS2003&#xff0c;IRS2108 EG2104替代IR2104 EG2104D替代IR2104、IR2008、IR2004 EG2104M替代IR2104、IR2008、IR2004 EG2104S替代IR2104 EG2106替代IR2106、IR2101、FAN7382、IRS2005、NCP…

使用flask开启一个简单的应用

Flask是非常流行的 Python Web框架&#xff0c;它能如此流行&#xff0c;原因主要有如下几点: 。有非常齐全的官方文档,上手非常方便。 。有非常好的扩展机制和第三方扩展环境&#xff0c;.工作中常见的软件都会有对应的扩展。自己动手实现扩展也很容易。 。社区活跃度非常高。…

基于springboot的智慧养老系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…