Google资深工程师深度讲解Go语言-单任务版爬虫(十四)

举报
lxw1844912514 发表于 2022/03/27 00:40:21 2022/03/27
【摘要】 一.获得初始页面内容 gopm get -g -v golang.org/x/text //引入gbk库 报错: bash: gopm: command not found 解决方法: 使用gopm 完成安装 gopm--Go Package Manager 的缩写。是go 上的包管理工具,十分好用。 gopm 1.gopm...

一.获得初始页面内容

gopm get -g -v golang.org/x/text  //引入gbk库

 

报错: bash: gopm: command not found
解决方法: 使用gopm 完成安装

gopm--Go Package Manager 的缩写。是go 上的包管理工具,十分好用。 gopm

1.gopm 安装:

这个十分简单只需一条命令就可以了:

go get -u github.com/gpmgo/gopm  //亲测可用
 

2.使用 gopm安装需要的包

gopm 具有丰富的包管理功能,具体的管理命令可以参考官方文档(官方文档有中文版 各位爽不爽)链接
这里只需要一条命令就可以搞定了:

gopm bin -d $GOPATH/bin PackageName
 

二.正则表达式获取邮件地址


  
  1. package main
  2. import (
  3. "fmt"
  4. "regexp"
  5. )
  6. const text = `
  7. my email is lxw@qq.com
  8. email2 is aa@def.com
  9. email3 is bb@eft.com.cn
  10. `
  11. func main() {
  12. re := regexp.MustCompile(`([a-zA-Z0-9]+)@([a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)`)
  13. match := re.FindAllStringSubmatch(text, -1)
  14. for _, m := range match {
  15. fmt.Println(m)
  16. }
  17. }

2.提取城市和url


  
  1. package main
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "net/http"
  6. "regexp"
  7. )
  8. func main() {
  9. resp, err := http.Get("http://www.zhenai.com/zhenghun")
  10. if err != nil {
  11. panic(err)
  12. }
  13. defer resp.Body.Close()
  14. if resp.StatusCode != http.StatusOK {
  15. fmt.Println("Error:status code", resp.StatusCode)
  16. return
  17. }
  18. all, err := ioutil.ReadAll(resp.Body)
  19. if err != nil {
  20. panic(err)
  21. }
  22. //fmt.Printf("%s\n", all)
  23. printCityList(all)
  24. }
  25. func printCityList(contents []byte){
  26. re:=regexp.MustCompile(`<a href="(http://www.zhenai.com/zhenghun/[a-z0-9]+)"[^>]*>([^<]+)</a>`)
  27. match:=re.FindAllSubmatch(contents,-1)
  28. for _,m :=range match {
  29. //for _,sub:=range m {
  30. // fmt.Printf("%s",sub)
  31. //}
  32. //fmt.Println()
  33. fmt.Printf("city: %s, Url:%s \n",m[2],m[1])
  34. }
  35. fmt.Printf("matches found:%d\n",len(match))
  36. }

 

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/108629822

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。