近年来随着国内电影市场的繁荣,电影评分及趋势分析成为一个热点研究课题,有很多人对其数据起伏投之以极大的热情。电影趋势分析可以通过用户对于不同电影类型评分的变化分析让影业公司了解到用户的喜好,有利于电影事业的发展.
用python爬虫爬取豆瓣电影数据
豆瓣电影上有很多关于每一部电影的信息,但豆瓣电影对数据爬虫的 IP 限制无法直接获取目标电影的全部数据,由于豆瓣网是一个具有反爬虫功能的网站,所以在做网络数据爬虫时进行了浏览器访问模拟,通过分析网页的源代码,用BeautifulSoup获取所需要的数据。
为了能够更好地分析不同电影类型热度及评分的分布情况,在获取数据时爬取豆瓣2020年公映的全部电影类型和评分数据进行分析.通过类型评分的对比分析,更能反映观众对不同类型电影的偏好.
爬取2020年公映电影,首先通过进入豆瓣网站进入2020年公映电影页面,获取该页面的 URL,通过查看网页源代码找到目标数据的位置,再使用urlopen把每部电影的整个
每部电影的具体介绍都包含在一对div中
获取步骤
获取数据的主要代码如下:
def get_html(url): # 通过url获取网页内容
message = urllib2.urlopen(url)
return message.read()
def get_movie(html): #用soup提取每个电影的全部信息,以列表返回
soup = BeautifulSoup(html)
movie_list = soup.find_all(′div′,
class_=′bd doulist-subject′)
return movie_list
def get_movie_1(movie):
message=[] # 用于存储提取出来的电影信息
soup = BeautifulSoup(str(movie))
title = soup.find_all(′div′,class_=′title′)
soup_title = BeautifulSoup(str(title[0]))
for line in soup_title.stripped_strings:
#提取 里的内容
message.append(line)
num = soup.find_all(′span′)
message.append(num[1].contents[0])
soup_num = BeautifulSoup(str(num[0]))
for line in soup_num.stripped_strings:
#对获取到的里的内容进行提取
message = message + line
info = soup.find_all(′div′,class_=′abstract′)
soup_info = BeautifulSoup(str(info[0]))
message_str = “”
for line in soup_info.stripped_strings:
# 提取
message_str = message_str + line
message.append(message_str)
return message # 返回提取到的结果
为方便数据可视化分析,运用Python语言对数据进行预处理,清洗无用信息,去除无评分电影.整理后便可以进行分析。
五、共享识刻
如果你处于想学python或者正在学习python,python的教程肯定是少不了的。说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的python全套教程,共计约400集,另附60本PDF电子书籍免费分享给大家!
能用到这些资料的可以关注下小编,并在后台私信小编:“python”即可领取。希望能帮助到各位。也希望每位用心学习python的朋友,日后都能成为一名合格的python程序员。