思路
采集所有分站到本地 命名为 city_site.txt
采集分站后在采集所有分站下的分页列表地址到city_company_with_page.txt
采集完分页后在进行采集所有分页列表下的数据进行数据库入库
采集入库后根据采集后的数据库入库地址进行分别采集详情里面的数据内容
第一步:采集所有分站到本地 命名为 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()
}