go 正则 爬取邮箱代码
package main import ( "net/http" "fmt" "io/ioutil" "regexp" ) var url string = "https://tieba.baidu.com/p/5518324938?red_tag=1795043739" var reEmail = `(\d+)@qq.com` func main() { resp, err := http.Get(url) handError(err) defer resp.Body.Close() bytesContent, err := ioutil.ReadAll(resp.Body) handError(err) getEmail(string(bytesContent)) } // 处理错误 func handError(err error) { //fmt.Println(err) if err != nil{ fmt.Println(err) } } // 获取邮箱 qq邮箱 使用正则 func getEmail(content string) { re := regexp.MustCompile(reEmail) list := re.FindAllStringSubmatch(content, -1) var result []string for _,v := range list { if v != nil{ result = append(result,v[0]) } } fmt.Println(result) }
结果
GOROOT=/usr/local/go #gosetup
GOPATH=/www/gopath #gosetup
/usr/local/go/bin/go build -i -o /private/var/folders/fc/4txmmczj6q92p6058h3w7t_80000gn/T/___go_build_main_go /www/gopath/src/wang/main.go #gosetup
/private/var/folders/fc/4txmmczj6q92p6058h3w7t_80000gn/T/___go_build_main_go #gosetup
[3304778804@qq.com 742948861@qq.com 1261766424@qq.com 2903927557@qq.com 973327005@qq.com 973327005@qq.com 51061804@qq.com 3154089413@qq.com 2501667505@qq.com 1733510262@qq.com 289207537@qq.com 11886843@qq.com 1069016912@qq.com 765730856@qq.com 643074575@qq.com 330256148@qq.com 2025643306@qq.com 1903987556@qq.com 136772698@qq.com 990242520@qq.com 876958445@qq.com 776283765@qq.com 184756372@qq.com 2580145919@qq.com 710830708@qq.com 459618331@qq.com 964974049@qq.com 1499820286@qq.com 1822036045@qq.com 29522755@qq.com 1903987556@qq.com 2444694413@qq.com]
Process finished with exit code 0
package main import ( "net/http" "fmt" "io/ioutil" "regexp" ) var url string = "https://tieba.baidu.com/p/5934645800" var reQQEmail = `(\d+)@qq.com` var reEmail = `\w+@\w+\.\w+` func main() { content := getPageString(url) res1 := getEmail(content,reEmail) res2 := getEmail(content,reQQEmail) fmt.Println("一共找到邮箱",len(res1)) fmt.Println("一共找到邮箱",len(res2)) } // 处理错误 func handError(err error) { //fmt.Println(err) if err != nil{ fmt.Println(err) } } // 获取邮箱 qq邮箱 使用正则 func getEmail(content string,reg string) []string { re := regexp.MustCompile(reg) list := re.FindAllStringSubmatch(content, -1) var result []string for _,v := range list { if v != nil{ result = append(result,v[0]) } } return result } func getPageString(url string) string { resp, err := http.Get(url) handError(err) defer resp.Body.Close() bytesContent, err := ioutil.ReadAll(resp.Body) handError(err) return string(bytesContent) }
相关文章
- 2022-08-21:以下go语言代码输出什么?A:0;B:panic;C:不知道。 package main var n = -99 func main()
- 2022-10-14:以下go语言代码输出什么?A:0;B:7;C:9;D:不能编译。 package main import “fmt“ func main(
- 2022-10-24:以下go语言代码输出什么?A:3 3;B:3 4;C:0 0;D:0 1。 package main func main() { m :=
- 2022-10-24:以下go语言代码输出什么?A:3 3;B:3 4;C:0 0;D:0 1。package mainfunc
- Go语言初见println和fmt.Println区别「建议收藏」
- 推荐一款一站式Linux&数据库管理平台《mayfly-go》
- 造一轮子:vscode插件--支持json生成go struct,curl生成go代码
- Go 100 mistakes之不正确的值比较
- 2022-12-31:以下go语言代码输出什么?A:1 1;B:-1 1;C:-1 -1;D:编译错误。 package mai
- 天呐!我用 go 从零开始写了一个 k8s 应用管理工具(附完整代码和开发过程)
- 一起开发,1 元就 Go!
- Go内存管理和分配策略
- Go-函数-匿名函数
- Go-标准库-fmt(三)
- Go 源码学习之–net/http详解编程语言
- 使用Go语言来操作Oracle数据库(go语言oracle)
- 环境Go 编译 在 Linux 环境中的体验(go编译linux)
- 使用 gosec 检查 Go 代码中的安全问题
- 毁誉交加的14个月后,Amazon Go 终于对外开放,商业意义有多大?
- Go语言链接Oracle数据库的实践记录(go 链接oracle)
- 数据库探索Go语言与Oracle数据库的结合(go语言中的oracle)
- 数据库Go语言实现监控Oracle数据库(go监听oracle)
- Go语言并发技术详解
- Go语言入门教程之基础语法快速入门
- GO语言文件的创建与打开实例分析