- 博客(171)
- 资源 (8)
- 收藏
- 关注
原创 使用 Chromedp 监听网页请求和响应
ChromeDP 是一个 Go 语言实现的库,它提供了无头浏览器的操作和控制能力,可以用来进行网页自动化、爬虫和测试等工作。通过 ChromeDP,我们可以编程方式监听网页上的各种事件,包括网络请求和响应。
2025-03-26 04:35:29
544
原创 Gin从入门到精通(八)身份验证与授权(JWT)
/ 示例用户数据(实际应从数据库读取)// 定义 JWT 密钥(需保密,生产环境应从配置读取)var JwtSecret = []byte("your-secret-key") // 值需要8位以上。
2025-02-24 15:03:43
587
原创 Gin从入门到精通 (七)文件上传和下载
在 Gin 中处理单文件上传,可以使用c.FormFile方法获取上传的文件,然后使用方法保存文件。我们使用postman来提交,http://localhost:8080/upload。
2025-02-24 15:01:07
437
原创 Gin从入门到精通 (六)中间件
import ("log""time"// 在请求处理前执行逻辑(如记录日志、校验权限)//Set是在Context上下文中设置键值对//--------请求前--------// 将控制权交给下一个中间件或路由处理函数c.Next()//--------请求后--------// 请求处理后执行逻辑(如记录耗时)//GetString是在Context上下文中获取键对应的值并且设置为字符串类型})此代码中间件会在请求前设置address的值为Nanjin。
2025-02-24 14:59:24
1051
原创 Gin从入门到精通 (五)数据绑定与验证
数据绑定是指将请求数据(如 JSON、表单、URL 参数等)绑定到 Go 语言中的结构体。Gin 提供了便捷的方法将请求中的数据映射到预定义的结构体字段上,使得开发者可以像访问结构体字段一样访问请求数据。数据验证是对绑定到结构体上的数据进行检查,确保数据符合特定规则或格式。例如,确保邮箱字段是有效的邮箱格式、年龄字段是一个合法的数字等。
2025-02-23 08:47:47
1202
原创 Gin从入门到精通 (四)请求参数
在web中,请求参数的来源多种多样,常见的有 URL 查询参数、表单参数、JSON 数据、路径参数等。下面将详细介绍不同类型请求参数的处理方式。
2025-02-23 08:44:05
817
原创 Gin从入门到精通 (三)路由
在 Web 应用开发中,路由的作用是根据不同的 URL 请求,将其映射到相应的处理函数上,以实现不同的业务逻辑。Gin 框架提供了丰富且灵活的路由功能,使开发者能够轻松应对各种复杂的路由需求。
2025-02-23 00:30:23
832
原创 Gin从入门到精通 (二)多种格式数据输出
在 Web 应用开发中,根据不同的业务需求和客户端要求,服务器需要以多种格式返回数据。Gin 框架提供了便捷的方法来实现不同格式数据的输出,下面将详细介绍几种常见格式数据的返回方式。
2025-02-23 00:29:02
748
原创 fyne 选项卡设计
用户界面的设计至关重要,它直接影响着用户体验。选卡设计作为一种常见的界面布局方式,能够有效地组织和展示信息,使用户能够方便快捷地浏览和操作。Fyne 是一个用 Go 语言编写的跨平台 GUI 框架,它提供了丰富的组件和功能,使得我们可以轻松地实现各种复杂的用户界面,包括选卡设计。
2025-01-22 19:07:00
1052
原创 go-zero(十六)结合Canal :实现高效数据同步与处理
Canal是阿里巴巴开源的一款数据库binlog增量订阅&消费的中间件,最初用于MySQL数据库主从复制协议解析。它能够模拟MySQLslave获取binlog并解析为结构化的数据,广泛应用于数据同步、实时数据处理等场景。
2025-01-20 02:46:18
952
原创 go-zero(十五)结合Redis:实现高效分页列表
在实际开发中,分页列表是一个非常常见的需求,尤其在面对大量数据时,通过分页可以有效减轻服务器和数据库的压力,提高用户体验。本篇文章将通过gozero和Redis的结合,提供一个高效、灵活的分页列表实现方案,涵盖基本分页逻辑、Redis缓存结合和常见优化方法。在一个社交媒体平台中,每个用户可以发布多篇文章,当用户浏览文章时,需要分页加载他们的内容。考虑以下场景:分页通常分为两种实现方式:在本文中,我们主要讨论游标分页的实现。完整的分页步骤总结:表:2.分页接口需求请求参数:返回
2024-12-20 18:14:29
810
原创 go-zero(十四)实践:缓存一致性保证、缓存击穿、缓存穿透与缓存雪崩解决方案
作为一种重要的技术手段,可以有效提高系统的响应速度,降低对数据库的压力。但是缓存的使用伴随一些常见问题,如和。下面我们将结合gozero框架,深入剖析这些问题的概念以及对应的解决方案。
2024-12-20 18:13:33
1301
3
原创 go-zero(十三)使用MapReduce并发
MapReduce 是一种用于并行计算的编程模型,特别适合在大规模数据处理场景中简化逻辑代码。
2024-12-13 06:33:27
915
2
原创 go-zero(十二)基于 Kafka:实现消息队列
在微服务架构中,消息队列主要通过异步通信实现服务间的解耦,使得各个服务可以独立发展和扩展。
2024-12-10 17:37:39
1481
原创 go-zero(十一) 日志
go zero的日志主要由两个组件组成logx和logclogx是go zero提供的核心日志库,它负责实际的日志记录工作。该组件支持多种输出方式和不同的日志级别(如 debug、info、warn、error),并且可以将日志信息输出到控制台、文件或远程服务器。logc本质上是对logx组件的一个封装,logc比logx多一个ctx参数,能够将日志信息与请求的上下文(即 ctx)进行关联。开发者可以更轻松地根据日志记录来追踪请求的处理过程,快速定位问题。灵活性。
2024-11-26 01:19:33
656
原创 go-zero(九) 自定义拦截器
有时我们需要在处理请求的过程中添加一些额外的逻辑,比如身份验证、日志记录、请求限流、性能监控等,这些都可以通过拦截器实现。go zero可以设置多个拦截器。
2024-11-23 13:44:24
483
原创 go-zero(八) 中间件的使用
go-zero 提供了一系列内置的中间件, 之前我们使用的JWT鉴权就使用了内置的鉴权管理中间件帮助我们实现了自动验证Token。鉴权管理中间件 AuthorizeHandler熔断中间件 BreakerHandler内容安全中间件 ContentSecurityHandler解密中间件 CryptionHandler压缩管理中间件 GunzipHandler日志中间件 LogHandlerContentLength 管理中间件 MaxBytesHandler。
2024-11-23 13:42:41
1383
原创 go-zero(七) RPC服务和ETCD使用
在微服务中,我们是通过RPC来传递数据的,下面将通过一个简单的示例,说明如何使用go-zero框架和 Protocol Buffers 定义 RPC 服务。
2024-11-19 13:07:54
1740
2
原创 go-zero(六) JWT鉴权
它是一种基于 JSON 的令牌,由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。签名是将头部和载荷组合后使用密钥生成的哈希值,用于验证令牌的真实性。
2024-11-18 20:34:50
1528
2
原创 go-zero(五) 模板定制
goctl 代码生成是基于 go 的模板去实现数据驱动的,实际开发中使用goctl`生成的代码,并不完全符合我们的需求。
2024-11-18 20:31:38
731
原创 go-zero(四) 错误处理(统一响应信息)
如果你不想使用这个库,或者想自己实现一些自定义错误,那么你也可以自己设置错误管理我们在internal目录下新建biz目录,用于业务处理,然后再这个目录下分别创建3个文件创建biz.go文件Msg: msg,创建resp.go文件Code: Ok,创建vars.go文件var (AlreadyRegister = NewError(1, "用户已注册")PasswordErr = NewError(2, "密码错误")InsertErr = NewError(3, "用户注册失败")
2024-11-17 20:00:47
1075
1
原创 go-zero(一) 介绍和使用
go-zero 是一个基于 Go 语言的微服务框架,提供了高效、简单并易于扩展的 API 设计和开发模式。它主要目的是为开发者提供一种简单的方式来构建和管理云原生应用。
2024-11-17 19:45:27
1807
原创 Chromedp 显示浏览器窗
在使用chromedp库进行爬虫和自动化测试时,默认情况下浏览器以无头模式运行。这种模式虽然对大多数爬取任务有效,但在某些情况下,例如调试或特定的网页交互,切换到有头模式(即显示浏览器窗口)会更加方便。本文将介绍如何配置chromedp库以显示浏览器窗口并开启声音。
2021-07-26 01:59:39
2691
1
原创 chromedp 获取新选项卡内容
在使用网络爬虫时,尤其是使用 chromedp 库进行爬虫的过程中,我们可能会遇到点击某个链接后,目标页面在浏览器的新标签页或新窗口中打开的情况。这样的行为可能会导致我们无法直接获取新标签页中的内容,因为 chromedp 只会在原始的上下文(Context)中保持活动,而不能自动转到新打开的标签页。为了解决这个问题,我们需要监听新标签页的创建,这样便可以在新的上下文中操作新标签页的内容。
2021-07-26 01:48:36
3898
1
原创 chromedp 关于iframe的坑
起因最近在使用chromedp进行爬虫的时候,发现怎么都无法获取到内容,最终发现是因为使用了iframe,chromedp获取到iframe的内容,或者无法对iframe进行操作。方法我们可以使用·EvaluateAsDevTools或者Evaluate运行javascript来完成目标。1.获取iframe的内容var res string //存储js执行返回内容 err := chromedp.Run(ctx, // ._2ngM58AmonJc1uOl10jZ_H 大屏监控
2021-07-25 16:57:26
2915
1
原创 layui使用下拉框实现配置切换
<script> layui.use(['form', 'layedit', 'laydate'], function () { function isSelcet(p1) { if (p1 == "真") { return true } else { return false } };
2020-12-06 14:34:30
641
原创 Beego脱坑(十八)静态文件处理
title: Beego脱坑(十八)静态文件处理tags: go,beego,ormauthor : Clown95刚接触beego的小伙伴,不知道有没有遇到这样的问题,在beego中使用的静态文件,并且路径设置的都正确,但是运行的时候,就是不能加载出来。就说我自己在刚开始使用beego的时候,想要使用layui前端框架,但是运行时layui并没有被调用,改来改出,才发现layui被我放错目录了,我没有放在static目录中,最后把layui移动到static目录中网页才正确的加载。Beego.
2020-10-31 23:06:58
14698
原创 go语言抖音直播真实地址提取
package liveimport ( "GetRelLiveUrl/utils" "encoding/json" "fmt" "net/http" "regexp" "strings")type Dy struct { Data struct { Room struct { StreamURL struct { RtmpPullURL string `json:"rtmp_pull_url"` HlsPullURL string `
2020-09-28 14:25:43
3005
2
原创 go语言实现屏幕截图
借助第三方库https://github.com/kbinani/screenshot安装go get github.com/kbinani/screenshot方法详情查看https://godoc.org/github.com/kbinani/screenshot自定义截图 Capture func Capture(x, y, width, height int) (*image.RGBA, error)返回指定桌面区域的屏幕截图。x,y是起点坐标, width,heig
2020-08-23 00:25:09
7692
1
原创 C# 透明窗口
最简单的实现方法,但是缺点也很多 this.BackColor =Color.White; this.TransparencyKey = Color.White;
2020-08-22 23:15:01
398
原创 go语言post提交数据
POST提交姓、名字,进行姓名评分package crawimport ( "fmt" "github.com/PuerkitoBio/goquery" "github.com/axgle/mahonia" "io/ioutil" "log" "net/http" "strings")func HttpPost(xing,ming string) string { enc:=mahonia.NewEncoder("gbk") xing =enc.ConvertString(
2020-08-18 15:46:21
1777
ins图片视频下载器 WIN版本
2020-06-01
优快云文章导出工具Win版.zip
2020-02-15
优快云文章导出工具Mac版
2020-02-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人