前几天做了一个爬取豆瓣Top250电影的爬虫,在爬取了豆瓣Top250的电影后,想试一试根据电影类别爬取所有的豆瓣电影,基本的原理是想通的。代码采用Python,抠取页面内容采用Beautiful Soup。
1.豆瓣电影分析
以豆瓣爱情类型电影为例,在浏览区中输入http://www.douban.com/tag/%E7%88%B1%E6%83%85/movie?start=0后显示的内容如下图所示:
可以看到每个电影以列表显示展现,每页显示15条电影信息。每一条的电影信息包括电影名称、国家或地区、电影类型、导演、主演,如果需要查看详细的电影信息需要每个电影的详情页面。
2.获取豆瓣电影类别
要根据电影类型爬取电影需要先获取所有的电影类别。
在Chrome浏览器中通过F12分析页面内容,可以看到类别是处于id为'article'的div标签中。
获取每一条类别名称,并存放于List中。
3.根据电影类别爬取电影列表
在获取了所有的类别标签后,依次遍历每一个类别标签,根据类别名称获取此类别的电影。查看类别电影列表的源码特点
所有的电影列表处于<div class="mod movie-list">之中,每一个电影在dl中。采用Beautiful Soup获取电影列表,然后分析每一个电影信息,获取电影详情页面的URL,下面代码中的detail_url即为电影详情页面的URL
获取到URL之后,再次爬取单个电影页面,获取电影的电影名称、导演、编剧、主演、类型、制品国家或地区、语言、上映时间、片长、豆瓣评分、剧情简介信息。
获取豆瓣评分及剧情介绍代码:
4.将电影信息插入到数据库中
在处理中每爬取一页内容即把数据存放于数据库中。
爬取的电影信息总共有26302条