用golang重写SS帐号获取脚本
Golang有个很酷的特性可以跨平台编译生成该平台的二进制可执行文件,虽然python也能通过其他工具生成相应平台的二进制文件,但是还是觉得太别扭了,通过golang写一次,然后生成相应平台的二进制文件而且没有依赖,多酷的事情。
这个ss帐号获取脚本干啥滴?
参考:http://youerning.blog.51cto.com/10513771/1852876
还在不断学习中,可能代码写得不够gopher。
首先安装依赖:
gogetgithub.com/PuerkitoBio/goquery
gogetgithub.com/skip2/go-qrcode
源码:
packagemainimport("encoding/base64""fmt""github.com/PuerkitoBio/goquery""github.com/skip2/go-qrcode""strings")funcstrInSlice(astring,list[]string)bool{for_,b:=rangelist{ifb==a{returntrue}}returnfalse}funcmain(){ssURL:="http://www.ishadowsocks.org/"page,err:=goquery.NewDocument(ssURL)iferr!=nil{fmt.Println(err)return}page.Find(".col-lg-4,.text-center").Each(func(iint,s*goquery.Selection){lis:=make([]string,4)s.Find("h5").Each(func(iint,ss*goquery.Selection){txt:=ss.Text()ifi<4&&strings.Contains(txt,":"){cont:=strings.Split(txt,":")[1]lis[i]=cont}})ifstrInSlice("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://"+encfname:=lis[0]+".png"qrcode.WriteFile(ret,qrcode.Medium,256,fname)}})}
保存文件为:ss.go
在本机执行:
gorunss.go
执行完成后,会在当前目录下生成三个png文件,怎么使用参考最上面的链接吧
生成当前环境的二进制文件:
gobuildss.go
然后就会在当前文件夹生成同名的二进制文件了
生成相应环境的二进制文件,比如windows下是.exe文件:
linux
CGO_ENABLED=0GOOS=linuxGOARCH=amd64gobuild
windows
CGO_ENABLED=0GOOS=windowsGOARCH=amd64gobuild
moc os
CGO_ENABLED=0GOOS=windowsGOARCH=amd64gobuild
后记:python开发还是很快的,但是golang也不差,再者golang的其它特性如goroutine,interface之类咱就不聊了,聊聊一个写小工具的心得。
二进制可执行文件真的那么重要么?
如果你写了一些小工具,又借助了很多的依赖包,当你放到其它平台必定是pip install -r requirement 这还是可以忍受的,如果这些小工具需要放置到一些不能联网环境,那么就很难过了~ 有一个工具是pyinstaller还是不错滴,可还是不够优雅。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。