首页
友链
关于
留言
Search
1
MacOs Apple M1/M2 Arm64 Docker 安装宝塔面板
873 阅读
2
Golang实现端口转发,搭隧道
730 阅读
3
Golang发起Http请求,带Header,gzip压缩
716 阅读
4
在Golang中运行JavaScript(爬虫必备技术)
697 阅读
5
Golang爬取异步加载渲染的Html内容
694 阅读
生活小趣
大佬文章
菜鸟笔记
Golang
PHP
微服务
登录
Search
标签搜索
Golang
PHP
Go
RPC
Mysql
工作
Sqlite
微服务
ETCD
GRPC
MacOs
Mac
远航丫
累计撰写
39
篇文章
累计收到
6
条评论
首页
栏目
生活小趣
大佬文章
菜鸟笔记
Golang
PHP
微服务
页面
友链
关于
留言
搜索到
14
篇与
的结果
2022-04-26
在Golang中运行JavaScript(爬虫必备技术)
使用场景,爬取网站内容调用js代码进行解密用go重新写一套别人的自定义解密多累啊万物的起源main方法package main import ( "github.com/dop251/goja" ) func main() { }先定义两个用于获取js代码返回值的方法// MyObject 定义一个js内部可调用的对象 func MyObject(call goja.ConstructorCall) *goja.Object { // 设置一个改对象的方法 err := call.This.Set("get_data", getDataFunc) if err != nil { return nil } return nil } // getDataFunc js内部对象get_data方法实现执行的逻辑,用于获取js方法返回值 func getDataFunc(name, age string) string { return "我叫:" + name + "\r\n年龄:" + age }开始执行JavaScript方法package main import ( "github.com/dop251/goja" ) func main() { vm := goja.New() vm.Set("MyObject", MyObject) // 把方法以对象的形式映射到js中 v, err := vm.RunString( // 运行的js代码 并获取返回值 ` function myMsg() { return ['Golang','10'] } var msg = myMsg(); // 调用go映射进来的方法获取js返回值 var o = new MyObject(); o.get_data(msg[0],msg[1]); `) //默认输出最后一个 if err != nil { panic(err) } // 打印返回值 println(v.Export().(string)) }控制台输出结果我叫:Golang 年龄:10完整代码package main import ( "github.com/dop251/goja" ) func main() { vm := goja.New() vm.Set("MyObject", MyObject) // 把方法以对象的形式映射到js中 v, err := vm.RunString( // 运行的js代码 并获取返回值 ` function myMsg() { return ['Golang','10'] } var msg = myMsg(); // 调用go映射进来的方法获取js返回值 var o = new MyObject(); o.get_data(msg[0],msg[1]); `) //默认输出最后一个 if err != nil { panic(err) } // 打印返回值 println(v.Export().(string)) } // MyObject 定义一个js内部可调用的对象 func MyObject(call goja.ConstructorCall) *goja.Object { // 设置一个改对象的方法 err := call.This.Set("get_data", getDataFunc) if err != nil { return nil } return nil } // getDataFunc js内部对象get_data方法实现执行的逻辑,用于获取js方法返回值 func getDataFunc(name, age string) string { return "我叫:" + name + "\r\n年龄:" + age }
2022年04月26日
697 阅读
1 评论
1 点赞
2022-04-26
Golang实现端口转发,搭隧道
Golang实现端口转发,实现服务器未开放8080,3306等端口,然后在线打开宝塔面板,本地连接mysql数据库,方便开发调试
2022年04月26日
730 阅读
1 评论
1 点赞
2022-04-20
Golang交叉编译go-sqlite3
背景需要在mac机上编译出linux使用的应用,引用了go-sqlite3包,出现编译错误错误详情qiantao@qiant elfishfs-go % CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags "-linkmode external -extldflags -static" -o demo # github.com/mattn/go-sqlite3 sqlite3-binding.c:33886:42: error: use of undeclared identifier 'pread64' sqlite3-binding.c:33904:42: error: use of undeclared identifier 'pwrite64' sqlite3-binding.c:34037:22: error: invalid application of 'sizeof' to an incomplete type 'struct unix_syscall []' sqlite3-binding.c:34046:22: error: invalid application of 'sizeof' to an incomplete type 'struct unix_syscall []' sqlite3-binding.c:34073:20: error: invalid application of 'sizeof' to an incomplete type 'struct unix_syscall []' sqlite3-binding.c:34090:16: error: invalid application of 'sizeof' to an incomplete type 'struct unix_syscall []' sqlite3-binding.c:14567:38: note: expanded from macro 'ArraySize' sqlite3-binding.c:34094:14: error: invalid application of 'sizeof' to an incomplete type 'struct unix_syscall []' sqlite3-binding.c:14567:38: note: expanded from macro 'ArraySize' sqlite3-binding.c:36748:11: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] sqlite3-binding.c:33890:49: note: expanded from macro 'osPread64' sqlite3-binding.c:36860:17: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] sqlite3-binding.c:33908:57: note: expanded from macro 'osPwrite64'问题需要交叉工具编译解决安装交叉编译工具brew install FiloSottile/musl-cross/musl-cross重新编译CC=x86_64-linux-musl-gcc CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags "-linkmode external -extldflags -static" -o demo作者:guhan121链接:https://www.jianshu.com/p/6ec6021c0e46来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2022年04月20日
492 阅读
0 评论
1 点赞
2022-04-20
Golang交叉编译多个平台可执行文件
1.MacMac下编译Linux平台的64位可执行程序:CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goMac下编译Windows平台的64位可执行程序:CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go2.LinuxLinux下编译Mac平台的64位可执行程序:CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.goLinux下编译Windows平台的64位可执行程序:CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build mian.go3.WindowsWindows下编译Mac平台的64位可执行程序:go env -w CGO_ENABLED=0 go env -w GOOS=darwin3 go env -w GOARCH=amd64 go build main.goWindows下编译Linux平台的64位可执行程序:go env -w CGO_ENABLED=0 go env -w GOOS=linux go env -w GOARCH=amd64 go build main.go说明GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm栗子🌰go env -w CGO_ENABLED=0 go env -w GOOS=linux go env -w GOARCH=amd64 go build main.go
2022年04月20日
427 阅读
0 评论
0 点赞
1
2
3
首页
复制
搜索
前进
后退
重载网页
和我当邻居
给我留言吧