golang:xpath选择器“htmlquery”简单用法

在做爬虫时,经常要用到html解析器提取数据,Python里面有神器lxml,go里面可以选择htmlquery或者goquery。其中htmlquery使用xpath选择器,goquery使用css选择器。就使用体验来说,htmlquery更方便一些,这儿主要介绍htmlquery的一些基本用法。 htmlquery是用于HTML的XPath数据提取库,可让通过XPath表达式从HTML文档中提取数据,使用起来很简单方便。xpath语法见https://www.w3school.com.cn/...阅读全文

2019.10.30 18:07:28 aside section._ 等
阅读:27870 评论:2

Golang 连接 Oracle

我们使用: https://github.com/rana/ora 原本我们使用下面的命令就可以装好: go get gopkg.in/rana/ora.v4 但因为墙的原因,无法下载,这时可以到github.com中直接把包下载下来,然后再安装: cd $GOPATH/src/gopkg.in/rana git clone https://github.com/rana/ora.git ora.v4 cd ora.v4 git checkout -b v4.1.15 v4.1.15 然后再如下...阅读全文

阅读:1460 评论:0

golang grpc之etcd服务注册发现

什么是etcd?什么是grpc?为什么要使用etcd。本文将简单对etcd与grpc介绍与代码实现。 etcd etcd是一个高可用的键值分布式存储系统,主要用于共享配置和服务发现。etcd使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader。k8s也使用了etcd。 Raft算法: Leader领导者: 处理所有客户端交互,日志复制等,一般一次只有一个Leader. Follower信徒: 类...阅读全文

2020-03-03 15:33:08 _老七
阅读:4291 评论:0

Go 每日一库之 rpcx

简介 在之前的两篇文章rpc和json-rpc中,我们介绍了 Go 标准库提供的rpc实现。在实际开发中,rpc库的功能还是有所欠缺。今天我们介绍一个非常优秀的 Go RPC 库——rpcx。rpcx是一位国人大牛开发的,详细开发历程可以在rpcx官方博客了解。rpcx拥有媲美,甚至某种程度上超越gRPC的性能,有完善的中文文档,提供服务发现和治理的插件。 快速使用 本文示例使用go modules。 首先是安装: $ go get -v -tags "reuseport quic kcp zo...阅读全文

2020-05-31 12:32:34 darjun
阅读:800 评论:1

Golang数据类型详解--整型

整型 Go 语言提供了 11 种整型,如下列表所示。 类型 说明 byte 等同于 uint8 int 依赖于不同平台下的实现,可以是 int32 或者 int64 int8 [-128, 127] int16 [-32768, 32767] int32 [-2147483648, 2147483647] int64 [-9223372036854775808, 9223372036854775807] rune 等同于 int32 uint 依赖于不同平台下的实现,可以是 uint32 或者 ...阅读全文

阅读:986 评论:0

protobuf3基础语法

本文作者:陈进坚 个人博客:https://jian1098.github.io CSDN博客:https://blog.csdn.net/c_jian 简书:https://www.jianshu.com/u/8ba9ac5706b6 联系方式:jian1098@qq.com 简介 ProtoBuf (Google Protocol Buffer)是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,同类型有常用的XML及JSON,但具有更小的传输体积、更高的编...阅读全文

2020-08-28 17:34:04 不能吃的坚果j
阅读:1644 评论:0

如何将含有多个main子项目的大项目mod化

以 xxx-go-eninge(图片中有打码) 为例,项目中包含5个子项目,2个公共类,如下图,红色框选即使公共模块其它都是独立的子项目,有main.go我们将这个项目放在任意文件夹,是否在GOPATH都可以如果这个项目不做任何配置,那么在任意目录下执行go get或build都会失败。现在操作步骤如下将项目根目录加入到GOPATH中,如图红圈中,Project级别的GOPATH即可,同时选中下面的索引GOPATH 这么做的目的是为了将当前大项目的目录变成一个独立的gopath的环境,里面有sr...阅读全文

阅读:4015 评论:0

还在手撸Go微服务?快来试试go-zero,超乎你的想象!

Githubhttps://github.com/tal-tech/go-zero快速构建高并发微服务0. 为什么说做好微服务很难?要想做好微服务,我们需要理解和掌握的知识点非常多,从几个维度上来说:基本功能层面并发控制&限流,避免服务被突发流量击垮服务注册与服务发现,确保能够动态侦测增减的节点负载均衡,需要根据节点承受能力分发流量超时控制,避免对已超时请求做无用功熔断设计,快速失败,保障故障节点的恢复能力高阶功能层面请求认证,确保每个用户只能访问自己的数据链路追踪,用于理解整个系统和快速定位特...阅读全文

2020-09-09 12:04:38 Keson
阅读:2133 评论:0

Golang 语言怎么使用 gomail 库发送邮件?

转载:Golang 语言怎么使用 gomail 库发送邮件? 介绍 我们在项目开发中,经常会遇到发送邮件的需求,比如给开发人员发送报警邮件,给用户发送优惠券或兑换码等。 Gomail 是发送电子邮件的简单高效的包。它已经过充分测试和记录。Gomail 只能使用 SMTP 服务器发送电子邮件。但是该 API 灵活,可以轻松实现使用本地 Postfix,API 等发送电子邮件的其他方法。 它使用 gopkg.in 进行了版本控制,因此保证每个版本都不会存在向后不兼容的更改。它需要 Go 1.2 或更...阅读全文

阅读:1178 评论:0

Go操作Redis实战

目录安装Redis客户端连接redis基本指令Keys():根据正则获取keysType():获取key对应值得类型Del():删除缓存项Exists():检测缓存项是否存在Expire(),ExpireAt():设置有效期TTL(),PTTL():获取有效期DBSize():查看当前数据库key的数量FlushDB():清空当前数据FlushAll():清空所有数据库字符串(string)类型Set():设置SetEX():设置并指定过期时间SetNX():设置并指定过期时间Get():获取G...阅读全文

2021-01-31 19:49:11 mb6013c0cc735b5
阅读:2203 评论:1

golang 创建型设计模式 建造者模式

golang 创建型设计模式 建造者模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 建造者模式 建造者模式(Builder Pattern)将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型设计模式。 _ 场景 某业务系统, 希望使用SQLQuery类动态构造复杂SQL查询语句 SQLQuery类的各种属性组合情况很多, 因此创建SQLQueryBuilder作为SQLQuery的建造者 builde...阅读全文

阅读:496 评论:0

反射三定律

反射第一定律:反射可以将interface类型变量转换成反射对象 package main import ( "fmt" "reflect" ) func main() { var x float64 = 3.4 t := reflect.TypeOf(x) //t is reflext.Type fmt.Println("type:", t) v := reflect.ValueOf(x) //v is reflext.Value fmt.Println("value:", v) } type...阅读全文

2021-02-01 02:32:40 杜子龙
阅读:473 评论:0

手撸golang 结构型设计模式 代理模式

手撸golang 结构型设计模式 代理模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 代理模式 代理模式(Proxy Pattern)指为其他对象提供一种代理,以控制对这个对象的访问,属于结构型设计模式。 使用代理模式主要有两个目的:一是保护目标对象,二是增强目标对象。 _ 场景 某订单管理系统, 允许用户对订单进行增删改查 后增加日志需求, 要求对订单的Save和Delete操作, 记录操作日志 后再增加权限需求, 要求对订单的Save...阅读全文

阅读:448 评论:0

手撸golang 结构型设计模式 门面模式

手撸golang 结构型设计模式 门面模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 门面模式 门面模式(Facade Pattern)又叫作外观模式,提供了一个统一的接口,用来访问子系统中的一群接口。其主要特征是定义了一个高层接口,让子系统更容易使用,属于结构型设计模式。 _ 场景 某在线商城, 推出了积分兑换礼品的功能 兑换礼品有几个步骤, 涉及到若干子系统: 积分系统, 检查用户积分是否足够 库存系统, 检查礼品是否有库存 物流系统...阅读全文

阅读:825 评论:0

go-zero解读与最佳实践(上)

go-zero解读与最佳实践(上)本文有『Go开源说』第三期 go-zero 直播内容修改整理而成,视频内容较长,拆分成上下篇,本文内容有所删减和重构。大家好,很高兴来到“GO开源说” 跟大家分享开源项目背后的一些故事、设计思想以及使用方法,今天分享的项目是 go-zero,一个集成了各种工程实践的 web 和 rpc 框架。我是Kevin,go-zero 作者,我的 github id 是 kevwan。go-zero 概览go-zero 虽然是20年8月7号才开源,但是已经经过线上大规模检验...阅读全文

2021-02-04 09:44:14 mb6018e97449ea1
阅读:2075 评论:0

手撸golang 行为型设计模式 委派模式

手撸golang 行为型设计模式 委派模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 委派模式 委派模式(Delegate Pattern)又叫作委托模式,基本作用就是负责任务的调用和分配,是一种特殊的静态代理模式,可以理解为全权代理模式,但是代理模式注重过程,而委派模式注重结果。 委派模式有3个参与角色。 (1)抽象任务角色(ITask):定义一个抽象接口,它有若干实现类。 (2)委派者角色(Delegate):负责在各个具体角色实例之...阅读全文

阅读:871 评论:0

手撸golang 行为型设计模式 模板方法模式

手撸golang 行为型设计模式 模板方法模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 模板方法模式 模板方法模式(Template Method Pattern)又叫作模板模式,指定义一个操作中的算法的框架, 而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤, 属于行为型设计模式。 模板方法模式主要包含2个角色。 (1)抽象模板(AbstractClass):抽象模板类,定义了一套算法框架/流程...阅读全文

阅读:480 评论:0

手撸golang 行为型设计模式 策略模式

手撸golang 行为型设计模式 策略模式 缘起 最近复习设计模式 拜读谭勇德的<<设计模式就该这样学>> 本系列笔记拟采用golang练习之 策略模式 策略模式(Strategy Pattern)又叫作政策模式(Policy Pattern), 它将定义的算法家族分别封装起来, 让它们之间可以互相替换, 从而让算法的变化不会影响到使用算法的用户, 属于行为型设计模式。 (摘自 谭勇德 <<设计模式就该这样学>>) 场景 某学员成绩管理系统, 需要对学员成绩进行排序 码农王二狗根据<<我的第一本...阅读全文

阅读:392 评论:0

Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务(三):RSA(RS512) 签名 JWT(附demo)

系列云原生 API 网关,gRPC-Gateway V2 初探Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇JWT & RS512JWT 与 RSA 详解,这里就不科普了。Google 一下,太多文章介绍了。我们进入官网:https://jwt.io/我们这里看图说话,注意 Decoded 部分:HEADER:ALGORITHM & TOKEN TYPEPAYLO...阅读全文

2021-04-15 10:51:40 mb6077a82612db2
阅读:593 评论:0

Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第二篇(内附开发 demo)

系列云原生 API 网关,gRPC-Gateway V2 初探Go + gRPC-Gateway(V2) 构建微服务实战系列,小程序登录鉴权服务:第一篇鉴权微服务数据持久化使用 Docker 快速本地搭建 MongoDB 4.4.5 环境拉取镜像docker pull mongo:4.4.5 # .... # Digest: sha256:67018ee2847d8c35e8c7aeba629795d091f93c93e23d3d60741fde74ed6858c4 # Status: Imag...阅读全文

2021-04-15 10:52:34 mb6077a82612db2
阅读:442 评论:0