Golang有个很酷的特性可以跨平台编译生成该平台的二进制可执行文件,虽然python也能通过其他工具生成相应平台的二进制文件,但是还是觉得太别扭了,通过golang写一次,然后生成相应平台的二进制文件而且没有依赖,多酷的事情。
目前创新互联建站已为1000多家的企业提供了网站建设、域名、网络空间、网站托管、服务器托管、企业网站设计、镜湖网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。这个ss帐号获取脚本干啥滴?
参考:http://youerning.blog.51cto.com/10513771/1852876
还在不断学习中,可能代码写得不够gopher。
首先安装依赖:
go get github.com/PuerkitoBio/goquery
go get github.com/skip2/go-qrcode
源码:
package main import ( "encoding/base64" "fmt" "github.com/PuerkitoBio/goquery" "github.com/skip2/go-qrcode" "strings" ) func strInSlice(a string, list []string) bool { for _, b := range list { if b == a { return true } } return false } func main() { ssURL := "http://www.ishadowsocks.org/" page, err := goquery.NewDocument(ssURL) if err != nil { fmt.Println(err) return } page.Find(".col-lg-4,.text-center").Each(func(i int, s *goquery.Selection) { lis := make([]string, 4) s.Find("h5").Each(func(i int, ss *goquery.Selection) { txt := ss.Text() if i < 4 && strings.Contains(txt, ":") { cont := strings.Split(txt, ":")[1] lis[i] = cont } }) if strInSlice("aes-256-cfb", lis) { fmt.Println(lis) data1 := lis[3] + ":" + lis[2] + "@" + lis[0] + ":" + lis[1] data2 := []byte(data1) enc := base64.StdEncoding.EncodeToString(data2) ret := "ss://" + enc fname := lis[0] + ".png" qrcode.WriteFile(ret, qrcode.Medium, 256, fname) } }) }
保存文件为:ss.go
在本机执行:
go run ss.go
执行完成后,会在当前目录下生成三个png文件,怎么使用参考最上面的链接吧
生成当前环境的二进制文件:
go build ss.go
然后就会在当前文件夹生成同名的二进制文件了
生成相应环境的二进制文件,比如windows下是.exe文件:
linux
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
windows
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
moc os
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
后记:python开发还是很快的,但是golang也不差,再者golang的其它特性如goroutine,interface之类咱就不聊了,聊聊一个写小工具的心得。
二进制可执行文件真的那么重要么?
如果你写了一些小工具,又借助了很多的依赖包,当你放到其它平台必定是pip install -r requirement 这还是可以忍受的,如果这些小工具需要放置到一些不能联网环境,那么就很难过了~ 有一个工具是pyinstaller还是不错滴,可还是不够优雅。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站题目:用golang重写SS帐号获取脚本-创新互联
链接地址:http://scgulin.cn/article/ddccip.html