爬蟲是標配了,看數據那一刻頗有趣。第一個就從最最最簡單最基礎的爬蟲開始寫起吧!html
原文地址:爬取最簡單的豆瓣電影 Top250
項目地址:https://github.com/go-crawler...git
咱們的目標站點是 豆瓣電影 Top250,估計你們都很眼熟了github
本次爬取8個字段,用於簡單的歸納分析。具體的字段以下:golang
簡單的分析一下目標源app
因爲量不大,咱們的爬取步驟以下url
$ go get -u github.com/PuerkitoBio/goquery
$ go run main.go
func ParsePages(doc *goquery.Document) (pages []Page) { pages = append(pages, Page{Page: 1, Url: ""}) doc.Find("#content > div > div.article > div.paginator > a").Each(func(i int, s *goquery.Selection) { page, _ := strconv.Atoi(s.Text()) url, _ := s.Attr("href") pages = append(pages, Page{ Page: page, Url: url, }) }) return pages }
func ParseMovies(doc *goquery.Document) (movies []Movie) { doc.Find("#content > div > div.article > ol > li").Each(func(i int, s *goquery.Selection) { title := s.Find(".hd a span").Eq(0).Text() ... movieDesc := strings.Split(DescInfo[1], "/") year := strings.TrimSpace(movieDesc[0]) area := strings.TrimSpace(movieDesc[1]) tag := strings.TrimSpace(movieDesc[2]) star := s.Find(".bd .star .rating_num").Text() comment := strings.TrimSpace(s.Find(".bd .star span").Eq(3).Text()) compile := regexp.MustCompile("[0-9]") comment = strings.Join(compile.FindAllString(comment, -1), "") quote := s.Find(".quote .inq").Text() ... log.Printf("i: %d, movie: %v", i, movie) movies = append(movies, movie) }) return movies }
看到這些數據,你有什麼想法呢,真是好奇 :=)spa