GO 语言学习 goquery 学习采集齐装网所有装修公司数据

思路

  1. 采集所有分站到本地 命名为 city_site.txt

  2. 采集分站后在采集所有分站下的分页列表地址到city_company_with_page.txt

  3. 采集完分页后在进行采集所有分页列表下的数据进行数据库入库

  4. 采集入库后根据采集后的数据库入库地址进行分别采集详情里面的数据内容

    第一步:采集所有分站到本地 命名为 city_site.txt

package step

import (
   "github.com/PuerkitoBio/goquery"
   "fmt"
   "os"
   "strings"
)

//读取所有的城市分站
func GetAllCitySites() {
   fd,_:=os.OpenFile("data/city_site.txt",os.O_RDWR|os.O_CREATE|os.O_APPEND,0644)
   citySiteUrl := "http://www.qizuang.com/city/"
   query, err := goquery.NewDocument(citySiteUrl)
   if err != nil {
      panic(err)
   }
   query.Find(".tab-con-item").Eq(1).Find(".span1").Each(func(i int, s *goquery.Selection) {
      // 遍历每个节点,查找对应内容
      prov := s.Find("span").First().Text() //省份
      s.Find("a").Each(func(i int, selection *goquery.Selection) {
         // 遍历每个节点,查找对应内容
         href, _ := selection.Attr("href")
         text := selection.Text()
         fd_content:=strings.Join([]string{prov," ",text," ",href,"\n"}," ")
         buf:=[]byte(fd_content)
         fd.Write(buf)
      })
   })
   fmt.Println("==========分站链接全部抓取完成==============")
   fd.Close()
}
点赞