爬取豆瓣电影 Top250

  1. 目标
  2. 开始
    1. 安装
    2. 运行
    3. 代码片段
      1. 1、获取所有分页
      2. 2、分析豆瓣电影信息
    4. 数据

爬虫是标配了,看数据那一刻很有趣。第一个就从最最最简单最基础的爬虫开始写起吧!

项目地址:https://github.com/golang-xx/douban-movie

目标

我们的目标站点是 豆瓣电影 Top250,估计大家都很眼熟了

本次爬取 8 个字段,用于简单的概括分析。具体的字段如下:

image

简单的分析一下目标源

  • 一页共 25 条
  • 含分页(共 10 页)且分页规则是正常的
  • 每一项的数据字段排序都是规则且不变

开始

由于量不大,我们的爬取步骤如下

  • 分析页面,获取所有的分页
  • 分析页面,循环爬取所有页面的电影信息
  • 爬取的电影信息入库

安装

1
$ go get -u github.com/PuerkitoBio/goquery

运行

1
$ go run main.go

代码片段

1、获取所有分页

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
}

2、分析豆瓣电影信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
}

数据

image

image

image

看到这些数据,你有什么想法呢,真是好奇 :=)


免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 [email protected]

推荐阅读:

文章标题:爬取豆瓣电影 Top250

本文作者:知识铺

发布时间:2018-03-21, 12:30:00

最后更新:2020-04-19, 17:52:49

原始链接:https://blog.zshipu.com/2018/03/21/golang/go/crawler/2018-03-21-douban-top250/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏