- 博客(182)
- 资源 (8)
- 收藏
- 关注
原创 Go语言爬虫系列教程5:HTML解析技术以及第三方库选择
在学习HTML解析之前,我们需要了解HTML的DOM树结构。DOM(Document Object Model)是HTML文档的树形结构表示,它将HTML文档中的每个元素、属性和文本都表示为一个节点。goquery是Go语言的一个强大HTML解析库,灵感来自jQuery。它基于Go标准库中的net/html包,并提供了类似jQuery的链式API,使HTML文档的遍历和操作变得简单。简单易用的API高效的解析性能支持CSS选择器Find。
2025-06-05 01:02:26
594
原创 Go语言爬虫系列教程4:使用正则表达式解析HTML内容
本文介绍了Go语言中使用正则表达式解析HTML内容的基础知识,重点讲解了正则表达式的核心语法。主要内容包括:1) 字面量匹配的精确查找;2) 点号(.)匹配任意字符;3) 星号(*)和加号(+)分别表示0次/多次和至少1次的重复匹配;4) 问号(?)实现可选匹配;5) 方括号[]定义字符集合和范围匹配;6) 否定字符类[^]的排除功能;7) 预定义字符类的简写形式;8) 精确量词{n}、范围量词{n,m}和最少量词{n,}的使用场景。这些语法组合使用可以灵活提取网页中的特定内容,是网络爬虫开发的基础技能。
2025-06-04 21:46:16
1231
原创 Go语言爬虫系列教程6:实战篇获取小红书博主最新动态
本项目是一个使用Go语言开发的爬虫程序,旨在自动获取小红书平台上指定博主的最新动态。程序支持配置文件自定义爬虫参数,能够批量处理多个博主账号,获取博主的文本动态和图片内容,并将内容保存到本地。爬虫通过分析小红书网页的DOM结构,设计数据模型,并实现配置管理,确保能够有效获取当天发布的内容。针对小红书的反爬虫机制,程序通过设置Cookie、User-Agent和请求间隔来规避限制。代码结构清晰,包含用户信息获取、动态列表爬取等核心功能,适合监控博主更新或收集小红书内容的用户使用。
2025-05-23 15:39:36
1454
原创 Go语言爬虫系列教程3:Go语言HTTP请求与响应处理实战
import ("fmt""net/http""strings""io"// 创建带有JSON请求体的POST请求// 使用http.NewRequest创建自定义请求if err!= nil {fmt.Printf("创建请求失败: %v\n", err)return// 设置Content-Type为JSON// 设置额外的请求头// 创建HTTP客户端并发送请求fmt.Println("发送POST请求...")if err!= nil {
2025-05-23 15:35:33
1038
原创 Go语言爬虫系列教程2:HTTP协议基础
HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的应用层协议,用于客户端(如浏览器)与服务器之间的数据通信。它基于TCP/IP 协议,定义了客户端如何向服务器发送请求、服务器如何响应请求,以及数据传输的格式和规则。
2025-05-23 15:33:54
1080
原创 Go语言爬虫系列教程:实战篇JS逆向实现优快云文章导出
本教程详细介绍了如何通过JS逆向工程实现优快云文章导出功能。首先,文章解释了JS逆向的概念及其在现代网站API保护中的重要性。接着,教程逐步分析了优快云的API请求机制,包括如何获取
2025-05-16 22:35:53
1974
1
原创 go-zero(十九)使用Prometheus监控ES指标
本文介绍了如何在go-zero框架中结合Prometheus和Grafana实现高效的系统监控。首先,文章强调了在微服务架构中监控的重要性,尤其是对于搜索服务等关键组件。接着,详细介绍了Prometheus和Grafana的特点及其在监控中的应用。Prometheus作为开源监控工具,具有多维度数据模型和强大的查询语言PromQL;Grafana则提供了丰富的可视化选项和告警功能。 文章随后展示了如何在docker环境中部署Prometheus和Grafana,并通过配置文件prometheus.yml和d
2025-05-16 03:54:54
1379
原创 go-zero(十八)结合Elasticsearch实现高效数据检索
本文介绍了如何将go-zero与Elasticsearch结合,实现高效的数据检索。首先,简要介绍了Elasticsearch的核心特点,包括分布式架构、实时搜索与分析、灵活的数据模型、强大的查询与聚合DSL、丰富的生态系统以及高性能与高可靠性。接着,列举了Elasticsearch的典型应用场景,如日志管理、电商搜索、企业级搜索、实时数据分析、地理空间分析、安全与SIEM、监控与运维等。随后,详细说明了如何通过Docker部署Elasticsearch和Kibana,并提供了相应的docker-compo
2025-05-15 13:20:35
1011
原创 Go语言爬虫系列教程1:爬虫基础概念
本文介绍了Go语言中网络爬虫的基础知识,包括爬虫的概念、工作流程、应用场景、分类以及法律规范。网络爬虫是一种自动抓取互联网信息的程序,广泛应用于数据采集、搜索引擎、竞品分析等领域。其核心工作流程包括发送HTTP请求、获取响应内容、解析数据、数据存储和跟进链接。爬虫可分为广度优先、深度优先、最佳优先等抓取策略,以及单机爬虫和分布式爬虫等技术架构。开发爬虫时需遵守法律规范,如遵守robots.txt协议、限制请求频率、尊重版权等。此外,文章还简要介绍了HTTP协议的基础知识,包括HTTP请求的结构和常用方法,为
2025-05-12 20:39:39
2132
原创 go-zero(十七)结合DTM :实现分布式事务
在微服务架构中,一个业务操作常常需要调用多个服务来完成。例如,在电商系统中下单时,需要同时操作订单服务和库存服务。这种跨服务的操作就需要分布式事务来保证数据一致性。多个服务间如何协调服务失败如何回滚如何保证最终一致性网络故障、服务不可用等问题处理DTM (Distributed Transaction Manager) 是一个开源的分布式事务管理器,它支持多种事务模式,如TCC、SAGA、XA等。简单易用的接口支持多种事务模式支持多种编程语言高可用、高性能设计。
2025-04-30 05:10:37
1183
原创 使用 Chromedp 监听网页请求和响应
ChromeDP 是一个 Go 语言实现的库,它提供了无头浏览器的操作和控制能力,可以用来进行网页自动化、爬虫和测试等工作。通过 ChromeDP,我们可以编程方式监听网页上的各种事件,包括网络请求和响应。
2025-03-26 04:35:29
851
原创 Gin从入门到精通(八)身份验证与授权(JWT)
/ 示例用户数据(实际应从数据库读取)// 定义 JWT 密钥(需保密,生产环境应从配置读取)var JwtSecret = []byte("your-secret-key") // 值需要8位以上。
2025-02-24 15:03:43
690
原创 Gin从入门到精通 (七)文件上传和下载
在 Gin 中处理单文件上传,可以使用c.FormFile方法获取上传的文件,然后使用方法保存文件。我们使用postman来提交,http://localhost:8080/upload。
2025-02-24 15:01:07
526
原创 Gin从入门到精通 (六)中间件
import ("log""time"// 在请求处理前执行逻辑(如记录日志、校验权限)//Set是在Context上下文中设置键值对//--------请求前--------// 将控制权交给下一个中间件或路由处理函数c.Next()//--------请求后--------// 请求处理后执行逻辑(如记录耗时)//GetString是在Context上下文中获取键对应的值并且设置为字符串类型})此代码中间件会在请求前设置address的值为Nanjin。
2025-02-24 14:59:24
1152
原创 Gin从入门到精通 (五)数据绑定与验证
数据绑定是指将请求数据(如 JSON、表单、URL 参数等)绑定到 Go 语言中的结构体。Gin 提供了便捷的方法将请求中的数据映射到预定义的结构体字段上,使得开发者可以像访问结构体字段一样访问请求数据。数据验证是对绑定到结构体上的数据进行检查,确保数据符合特定规则或格式。例如,确保邮箱字段是有效的邮箱格式、年龄字段是一个合法的数字等。
2025-02-23 08:47:47
1263
原创 Gin从入门到精通 (四)请求参数
在web中,请求参数的来源多种多样,常见的有 URL 查询参数、表单参数、JSON 数据、路径参数等。下面将详细介绍不同类型请求参数的处理方式。
2025-02-23 08:44:05
877
原创 Gin从入门到精通 (三)路由
在 Web 应用开发中,路由的作用是根据不同的 URL 请求,将其映射到相应的处理函数上,以实现不同的业务逻辑。Gin 框架提供了丰富且灵活的路由功能,使开发者能够轻松应对各种复杂的路由需求。
2025-02-23 00:30:23
899
原创 Gin从入门到精通 (二)多种格式数据输出
在 Web 应用开发中,根据不同的业务需求和客户端要求,服务器需要以多种格式返回数据。Gin 框架提供了便捷的方法来实现不同格式数据的输出,下面将详细介绍几种常见格式数据的返回方式。
2025-02-23 00:29:02
801
原创 fyne 选项卡设计
用户界面的设计至关重要,它直接影响着用户体验。选卡设计作为一种常见的界面布局方式,能够有效地组织和展示信息,使用户能够方便快捷地浏览和操作。Fyne 是一个用 Go 语言编写的跨平台 GUI 框架,它提供了丰富的组件和功能,使得我们可以轻松地实现各种复杂的用户界面,包括选卡设计。
2025-01-22 19:07:00
1129
原创 go-zero(十六)结合Canal :实现高效数据同步与处理
Canal是阿里巴巴开源的一款数据库binlog增量订阅&消费的中间件,最初用于MySQL数据库主从复制协议解析。它能够模拟MySQLslave获取binlog并解析为结构化的数据,广泛应用于数据同步、实时数据处理等场景。
2025-01-20 02:46:18
1057
原创 go-zero(十五)结合Redis:实现高效分页列表
在实际开发中,分页列表是一个非常常见的需求,尤其在面对大量数据时,通过分页可以有效减轻服务器和数据库的压力,提高用户体验。本篇文章将通过gozero和Redis的结合,提供一个高效、灵活的分页列表实现方案,涵盖基本分页逻辑、Redis缓存结合和常见优化方法。在一个社交媒体平台中,每个用户可以发布多篇文章,当用户浏览文章时,需要分页加载他们的内容。考虑以下场景:分页通常分为两种实现方式:在本文中,我们主要讨论游标分页的实现。完整的分页步骤总结:表:2.分页接口需求请求参数:返回
2024-12-20 18:14:29
892
7
原创 go-zero(十四)实践:缓存一致性保证、缓存击穿、缓存穿透与缓存雪崩解决方案
作为一种重要的技术手段,可以有效提高系统的响应速度,降低对数据库的压力。但是缓存的使用伴随一些常见问题,如和。下面我们将结合gozero框架,深入剖析这些问题的概念以及对应的解决方案。
2024-12-20 18:13:33
1434
3
原创 go-zero(十三)使用MapReduce并发
MapReduce 是一种用于并行计算的编程模型,特别适合在大规模数据处理场景中简化逻辑代码。
2024-12-13 06:33:27
976
2
原创 go-zero(十二)基于 Kafka:实现消息队列
在微服务架构中,消息队列主要通过异步通信实现服务间的解耦,使得各个服务可以独立发展和扩展。
2024-12-10 17:37:39
1691
原创 go-zero(十一) 日志
go zero的日志主要由两个组件组成logx和logclogx是go zero提供的核心日志库,它负责实际的日志记录工作。该组件支持多种输出方式和不同的日志级别(如 debug、info、warn、error),并且可以将日志信息输出到控制台、文件或远程服务器。logc本质上是对logx组件的一个封装,logc比logx多一个ctx参数,能够将日志信息与请求的上下文(即 ctx)进行关联。开发者可以更轻松地根据日志记录来追踪请求的处理过程,快速定位问题。灵活性。
2024-11-26 01:19:33
842
原创 go-zero(九) RPC拦截器的使用
拦截器是 gRPC 框架提供的一种机制,允许开发者在 RPC 调用的不同阶段插入自定义逻辑。服务端拦截器(Server Interceptor):在服务端处理请求前后执行自定义逻辑客户端拦截器(Client Interceptor):在客户端发送请求前后执行自定义逻辑ctx: 请求上下文,包含元数据req: 客户端请求参数info: RPC 方法的相关信息,如方法名handler: 实际处理请求的处理器ctx: 请求上下文method: 完整的 RPC 方法名req: 请求参数reply。
2024-11-23 13:44:24
582
原创 go-zero(八) 中间件的使用
go zero 提供了一系列内置的中间件,以帮助开发者管理 HTTP 请求的不同方面。还记得之前的jwt鉴权吗?那边我们只实现了token生成,但是并没有实现验证,但是go zero能够自动解析token,就是因为它内置了AuthorizeHandler(鉴权管理中间件)。尽管go-zero 提供了丰富的内置中间件,但在实际项目中,我们经常需要开发自定义中间件来满足特定业务需求。
2024-11-23 13:42:41
1600
原创 go-zero(七) RPC服务和ETCD使用
在微服务中,我们是通过RPC来传递数据的,下面将通过一个简单的示例,说明如何使用go-zero框架和 Protocol Buffers 定义 RPC 服务。
2024-11-19 13:07:54
1973
2
原创 go-zero(六) JWT鉴权
它是一种基于 JSON 的令牌,由三部分组成:头部(Header)、载荷(Payload)和签名(Signature)。签名是将头部和载荷组合后使用密钥生成的哈希值,用于验证令牌的真实性。
2024-11-18 20:34:50
1746
2
原创 go-zero(五) 模板定制
go-zero 的 goctl 工具通过 text/template 实现代码生成,支持根据 API 定义自动生成服务框架代码。实际项目中,开发者可以根据团队规范和业务需求定制模板。模板文件按服务类型组织,如 API、Docker、Kubernetes 等,每个类型包含多个子模板。通过 goctl template init 命令,可以初始化模板文件到本地。模板中可以使用变量、条件语句、循环和函数等语法。开发者可以修改模板文件,例如在 handler.tpl 中定制错误处理逻辑,使用 xhttp.JsonB
2024-11-18 20:31:38
795
原创 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
1357
1
原创 go-zero(一) 介绍和使用
go-zero 是一个基于 Go 语言的微服务框架,提供了高效、简单并易于扩展的 API 设计和开发模式。它主要目的是为开发者提供一种简单的方式来构建和管理云原生应用。
2024-11-17 19:45:27
2170
优快云文章导出工具Win版.zip
2020-02-15
优快云文章导出工具Mac版
2020-02-13
ins图片视频下载器 WIN版本
2020-06-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人